I am announcing the release of the 2.6.32.36+drm33.15 longterm tree.
This tree is based on 2.6.32 and generally has all of the stable updates
applied. Except those to the DRM subsystem, which was based on 2.6.33 and
took updates from that upstream stable as long as that existed. It will
continue to add patches to the DRM subsystem as long as they are valid
according to the stable update rules (Documentation/stable_kernel_rules.txt).
DRM patches for this tree should be sent to kernel-team@lists.ubuntu.com.
This release contains patches from upstream 2.6.32.36, but dropped any patches
to the DRM subsystem.
The updated 2.6.32.y-drm33.z tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/smb/linux-2.6.32.y-drm33.z.git
and can be browsed through git web via:
http://git.kernel.org/?p=linux/kernel/git/smb/linux-2.6.32.y-drm33.z.git;a=summary
-Stefan
------
* aio: wake all waiters when destroying ctx
* shmem: let shared anonymous be nonlinear again
* PCI hotplug: acpiphp: set current_state to D0 in register_slot
* xen: set max_pfn_mapped to the last pfn mapped
* x86: Cleanup highmap after brk is concluded
* PCI: return correct value when writing to the "reset" attribute
* Prevent rt_sigqueueinfo and rt_tgsigqueueinfo from spoofing the signal code
* ext3: skip orphan cleanup on rocompat fs
* procfs: fix /proc/<pid>/maps heap check
* proc: protect mm start_code/end_code in /proc/pid/stat
* fbcon: Bugfix soft cursor detection in Tile Blitting
* nfsd41: modify the members value of nfsd4_op_flags
* nfsd: wrong index used in inner loop
* uvcvideo: Fix uvc_fixup_video_ctrl() format search
* ehci-hcd: Bug fix: don't set a QH's Halt bit
* USB: uss720 fixup refcount position
* USB: cdc-acm: fix memory corruption / panic
* USB: cdc-acm: fix potential null-pointer dereference
* USB: cdc-acm: fix potential null-pointer dereference on disconnect
* Input: xen-kbdfront - advertise either absolute or relative coordinates
* SUNRPC: Never reuse the socket port after an xs_close()
* fs: call security_d_instantiate in d_obtain_alias V2
* dcdbas: force SMI to happen when expected
* Linux 2.6.32.36
static unsigned long dma_reserve __initdata;
@@ -257,18 +258,18 @@ void __init init_extra_mapping_uc(unsigned long phys, unsigned long size)
* to the compile time generated pmds. This results in invalid pmds up
* to the point where we hit the physaddr 0 mapping.
*
- * We limit the mappings to the region from _text to _end. _end is
- * rounded up to the 2MB boundary. This catches the invalid pmds as
+ * We limit the mappings to the region from _text to _brk_end. _brk_end
+ * is rounded up to the 2MB boundary. This catches the invalid pmds as
* well, as they are located before _text:
*/
void __init cleanup_highmap(void)
{
unsigned long vaddr = __START_KERNEL_map;
- unsigned long end = roundup((unsigned long)_end, PMD_SIZE) - 1;
+ unsigned long vaddr_end = __START_KERNEL_map + (max_pfn_mapped << PAGE_SHIFT);
+ unsigned long end = roundup((unsigned long)_brk_end, PMD_SIZE) - 1;
pmd_t *pmd = level2_kernel_pgt;
- pmd_t *last_pmd = pmd + PTRS_PER_PMD;
+ /* max_pfn_mapped is the last pfn mapped in the initial memory
+ * mappings. Considering that on Xen after the kernel mappings we
+ * have the mappings of some pages that don't exist in pfn space, we
+ * set max_pfn_mapped to the last real pfn mapped. */
+ max_pfn_mapped = PFN_DOWN(__pa(xen_start_info->mfn_list));
+
/* Zap identity mapping */
init_level4_pgt[0] = __pgd(0);
/* stop scanning when we reach qtds the hc is using */
@@ -456,16 +454,6 @@ qh_completions (struct ehci_hcd *ehci, struct ehci_qh *qh)
*/
ehci_clear_tt_buffer(ehci, qh, urb, token);
}
-
- /* force halt for unlinked or blocked qh, so we'll
- * patch the qh later and so that completions can't
- * activate it while we "know" it's stopped.
- */
- if ((halt & hw->hw_token) == 0) {
-halt:
- hw->hw_token |= halt;
- wmb ();
- }
}
/* unless we already know the urb's status, collect qtd status
diff --git a/drivers/usb/misc/uss720.c b/drivers/usb/misc/uss720.c
index 5a03b2e..56b1e73 100644
--- a/drivers/usb/misc/uss720.c
+++ b/drivers/usb/misc/uss720.c
@@ -176,12 +176,11 @@ static struct uss720_async_request *submit_async_request(struct parport_uss720_p
spin_lock_irqsave(&priv->asynclock, flags);
list_add_tail(&rq->asynclist, &priv->asynclist);
spin_unlock_irqrestore(&priv->asynclock, flags);
+ kref_get(&rq->ref_count);
ret = usb_submit_urb(rq->urb, mem_flags);
- if (!ret) {
- kref_get(&rq->ref_count);
+ if (!ret)
return rq;
- }
- kref_put(&rq->ref_count, destroy_async);
+ destroy_async(&rq->ref_count);
err("submit_async_request submit_urb failed with %d", ret);
return NULL;
}
diff --git a/drivers/video/console/tileblit.c b/drivers/video/console/tileblit.c
index 0056a41..15e8e1a 100644
--- a/drivers/video/console/tileblit.c
+++ b/drivers/video/console/tileblit.c
@@ -83,7 +83,7 @@ static void tile_cursor(struct vc_data *vc, struct fb_info *info, int mode,
int softback_lines, int fg, int bg)
{
struct fb_tilecursor cursor;
- int use_sw = (vc->vc_cursor_type & 0x01);
+ int use_sw = (vc->vc_cursor_type & 0x10);
if (unlikely(!ctx->reqs_active && ctx->dead))
- wake_up(&ctx->wait);
+ wake_up_all(&ctx->wait);
}
static void aio_fput_routine(struct work_struct *data)
@@ -1219,7 +1219,7 @@ static void io_destroy(struct kioctx *ioctx)
* by other CPUs at this point. Right now, we rely on the
* locking done by the above calls to ensure this consistency.
*/
- wake_up(&ioctx->wait);
+ wake_up_all(&ioctx->wait);
put_ioctx(ioctx); /* once for the lookup */
}
/* Not even root can pretend to send signals from the kernel.
- Nor can they impersonate a kill(), which adds source info. */
- if (info.si_code >= 0)
+ * Nor can they impersonate a kill()/tgkill(), which adds source info.
+ */
+ if (info.si_code != SI_QUEUE) {
+ /* We used to allow any < 0 si_code */
+ WARN_ON_ONCE(info.si_code < 0);
return -EPERM;
+ }
info.si_signo = sig;
/* POSIX.1b doesn't mention process groups. */
@@ -2367,9 +2371,13 @@ long do_rt_tgsigqueueinfo(pid_t tgid, pid_t pid, int sig, siginfo_t *info)
return -EINVAL;
/* Not even root can pretend to send signals from the kernel.
- Nor can they impersonate a kill(), which adds source info. */
- if (info->si_code >= 0)
+ * Nor can they impersonate a kill()/tgkill(), which adds source info.
+ */
+ if (info->si_code != SI_QUEUE) {
+ /* We used to allow any < 0 si_code */
+ WARN_ON_ONCE(info->si_code < 0);
return -EPERM;
+ }
info->si_signo = sig;
--
kernel-team mailing list
kernel-team@lists.ubuntu.com
https://lists.ubuntu.com/mailman/listinfo/kernel-team
03-29-2011, 01:01 PM
Tim Gardner
Linux 2.6.32.36+drm33.15
On 03/28/2011 12:35 PM, Stefan Bader wrote:
I am announcing the release of the 2.6.32.36+drm33.15 longterm tree.
This tree is based on 2.6.32 and generally has all of the stable updates
applied. Except those to the DRM subsystem, which was based on 2.6.33 and
took updates from that upstream stable as long as that existed. It will
continue to add patches to the DRM subsystem as long as they are valid
according to the stable update rules (Documentation/stable_kernel_rules.txt).
DRM patches for this tree should be sent to kernel-team@lists.ubuntu.com.
This release contains patches from upstream 2.6.32.36, but dropped any patches
to the DRM subsystem.
The updated 2.6.32.y-drm33.z tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/smb/linux-2.6.32.y-drm33.z.git
and can be browsed through git web via:
http://git.kernel.org/?p=linux/kernel/git/smb/linux-2.6.32.y-drm33.z.git;a=summary
-Stefan
------
* aio: wake all waiters when destroying ctx
* shmem: let shared anonymous be nonlinear again
* PCI hotplug: acpiphp: set current_state to D0 in register_slot
* xen: set max_pfn_mapped to the last pfn mapped
* x86: Cleanup highmap after brk is concluded
* PCI: return correct value when writing to the "reset" attribute
* Prevent rt_sigqueueinfo and rt_tgsigqueueinfo from spoofing the signal code
* ext3: skip orphan cleanup on rocompat fs
* procfs: fix /proc/<pid>/maps heap check
* proc: protect mm start_code/end_code in /proc/pid/stat
* fbcon: Bugfix soft cursor detection in Tile Blitting
* nfsd41: modify the members value of nfsd4_op_flags
* nfsd: wrong index used in inner loop
* uvcvideo: Fix uvc_fixup_video_ctrl() format search
* ehci-hcd: Bug fix: don't set a QH's Halt bit
* USB: uss720 fixup refcount position
* USB: cdc-acm: fix memory corruption / panic
* USB: cdc-acm: fix potential null-pointer dereference
* USB: cdc-acm: fix potential null-pointer dereference on disconnect
* Input: xen-kbdfront - advertise either absolute or relative coordinates
* SUNRPC: Never reuse the socket port after an xs_close()
* fs: call security_d_instantiate in d_obtain_alias V2
* dcdbas: force SMI to happen when expected
* Linux 2.6.32.36