I'm announcing the release of the 2.6.32.21 kernel.
All users of the 2.6.32 kernel series must upgrade.
The updated 2.6.32.y git tree can be found at:
git://git.kernel.org/pub/scm/linux/kernel/git/stable/linux-2.6.32.y.git
and can be browsed at the normal kernel.org git web browser:
http://git.kernel.org/?p=linux/kernel/git/stable/linux-2.6.32.y.git;a=summary
thanks,
greg k-h
------------
Makefile | 2
arch/arm/include/asm/ptrace.h | 17 +++-
arch/powerpc/Makefile | 2
arch/sparc/include/asm/atomic_64.h | 10 +-
arch/sparc/include/asm/parport.h | 4
arch/sparc/include/asm/rwsem-const.h | 2
arch/x86/Kconfig | 5 +
arch/x86/kernel/apic/apic.c | 41 ++++++++--
arch/x86/kernel/apic/io_apic.c | 2
arch/x86/kernel/smpboot.c | 19 ++++
arch/x86/oprofile/nmi_int.c | 17 +++-
drivers/gpu/drm/drm_drv.c | 4
drivers/gpu/drm/i915/i915_gem.c | 3
drivers/gpu/drm/i915/intel_display.c | 1
drivers/gpu/drm/radeon/radeon_legacy_crtc.c | 2
drivers/hwmon/pc87360.c | 31 ++++---
drivers/isdn/sc/ioctl.c | 10 +-
drivers/md/dm-ioctl.c | 44 ++++++----
drivers/md/dm-mpath.c | 1
drivers/memstick/core/mspro_block.c | 5 -
drivers/mtd/nand/pxa3xx_nand.c | 2
drivers/net/wireless/ath/ath5k/base.c | 21 +++++
drivers/pcmcia/pcmcia_resource.c | 5 -
drivers/usb/host/xhci-ring.c | 2
drivers/usb/serial/cp210x.c | 4
drivers/usb/serial/ftdi_sio.c | 5 -
drivers/usb/serial/ftdi_sio_ids.h | 9 ++
drivers/usb/serial/io_ti.c | 2
drivers/usb/serial/navman.c | ...diff --git a/Makefile b/Makefile
index ad4d191..3e7196f 100644
--- a/Makefile
+++ b/Makefile
@@ -1,7 +1,7 @@
VERSION = 2
PATCHLEVEL = 6
SUBLEVEL = 32
-EXTRAVERSION = .20
+EXTRAVERSION = .21
NAME = Man-Eating Seals of Antiquity
# *DOCUMENTATION*
diff --git a/arch/arm/include/asm/ptrace.h b/arch/arm/include/asm/ptrace.h
index bbecccd..1df6457 100644
--- a/arch/arm/include/asm/ptrace.h
+++ b/arch/arm/include/asm/ptrace.h
@@ -150,15 +150,24 @@ struct pt_regs {
*/
static inline int valid_user_regs(struct pt_regs *regs)
{
- if (user_mode(regs) && (regs->ARM_cpsr & PSR_I_BIT) == 0) {
- regs->ARM_cpsr &= ~(PSR_F_BIT | PSR_A_BIT);
- return 1;
+ unsigned long mode = regs->ARM_cpsr & MODE_MASK;
+
+ /*
+ * Always clear the F (FIQ) and A (delayed abort) bits
+ */
+ regs->ARM_cpsr &= ~(PSR_F_BIT | PSR_A_BIT);
+
+ if ((regs->ARM_cpsr & PSR_I_BIT) == 0) {
+ if (mode == USR_MODE)
+ return 1;
+ if (elf_hwcap & HWCAP_26BIT && mode == USR26_MODE)
+ return 1;
}
/*
* Force CPSR to something logical...
*/
- regs->ARM_cpsr &= PSR_f | PSR_s | (PSR_x & ~PSR_A_BIT) | PSR_T_BIT | MODE32_BIT;
+ regs->ARM_cpsr &= PSR_f | PSR_s | PSR_x | PSR_T_BIT | MODE32_BIT;
if (!(elf_hwcap & HWCAP_26BIT))
regs->ARM_cpsr |= USR_MODE;
diff --git a/arch/powerpc/Makefile b/arch/powerpc/Makefile
index 7546e2c..c107b74 100644
--- a/arch/powerpc/Makefile
+++ b/arch/powerpc/Makefile
@@ -159,7 +159,7 @@ drivers-$(CONFIG_OPROFILE) += arch/powerpc/oprofile/
all: zImage
# With make 3.82 we cannot mix normal and wildcard targets
-BOOT_TARGETS1 := zImage zImage.initrd uImaged
+BOOT_TARGETS1 := zImage zImage.initrd uImage
BOOT_TARGETS2 := zImage% dtbImage% treeImage.% cuImage.% simpleImage.%
PHONY += $(BOOT_TARGETS1) $(BOOT_TARGETS2)
diff --git a/arch/sparc/include/asm/atomic_64.h b/arch/sparc/include/asm/atomic_64.h
index f2e4800..f5cc06f 100644
--- a/arch/sparc/include/asm/atomic_64.h
+++ b/arch/sparc/include/asm/atomic_64.h
@@ -20,14 +20,14 @@
#define ...