public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
From: Greg KH <gregkh@suse.de>
To: linux-kernel@vger.kernel.org, stable@kernel.org
Cc: stable-review@kernel.org, torvalds@linux-foundation.org,
	akpm@linux-foundation.org, alan@lxorguk.ukuu.org.uk,
	Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Subject: [025/136] xen: make -fstack-protector work under Xen
Date: Thu, 01 Oct 2009 18:16:13 -0700	[thread overview]
Message-ID: <20091002012409.555944588@mini.kroah.org> (raw)
In-Reply-To: <20091002012911.GA18542@kroah.com>

[-- Attachment #1: xen-make-fstack-protector-work-under-xen.patch --]
[-- Type: text/plain, Size: 8528 bytes --]

2.6.31-stable review patch.  If anyone has any objections, please let us know.

------------------
From: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>

commit 577eebeae34d340685d8985dfdb7dfe337c511e8 upstream.

-fstack-protector uses a special per-cpu "stack canary" value.
gcc generates special code in each function to test the canary to make
sure that the function's stack hasn't been overrun.

On x86-64, this is simply an offset of %gs, which is the usual per-cpu
base segment register, so setting it up simply requires loading %gs's
base as normal.

On i386, the stack protector segment is %gs (rather than the usual kernel
percpu %fs segment register).  This requires setting up the full kernel
GDT and then loading %gs accordingly.  We also need to make sure %gs is
initialized when bringing up secondary cpus too.

To keep things consistent, we do the full GDT/segment register setup on
both architectures.

Because we need to avoid -fstack-protected code before setting up the GDT
and because there's no way to disable it on a per-function basis, several
files need to have stack-protector inhibited.

[ Impact: allow Xen booting with stack-protector enabled ]

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>

---
 arch/x86/mm/Makefile     |    4 +
 arch/x86/xen/Makefile    |    2 
 arch/x86/xen/enlighten.c |  131 ++++++++++++++++++++++++++++++++++++++++-------
 arch/x86/xen/smp.c       |    1 
 drivers/xen/Makefile     |    3 +
 5 files changed, 122 insertions(+), 19 deletions(-)

--- a/arch/x86/mm/Makefile
+++ b/arch/x86/mm/Makefile
@@ -1,6 +1,10 @@
 obj-y	:=  init.o init_$(BITS).o fault.o ioremap.o extable.o pageattr.o mmap.o \
 	    pat.o pgtable.o gup.o
 
+# Make sure __phys_addr has no stackprotector
+nostackp := $(call cc-option, -fno-stack-protector)
+CFLAGS_ioremap.o		:= $(nostackp)
+
 obj-$(CONFIG_SMP)		+= tlb.o
 
 obj-$(CONFIG_X86_32)		+= pgtable_32.o iomap_32.o
--- a/arch/x86/xen/enlighten.c
+++ b/arch/x86/xen/enlighten.c
@@ -51,6 +51,7 @@
 #include <asm/pgtable.h>
 #include <asm/tlbflush.h>
 #include <asm/reboot.h>
+#include <asm/stackprotector.h>
 
 #include "xen-ops.h"
 #include "mmu.h"
@@ -330,18 +331,28 @@ static void xen_load_gdt(const struct de
 	unsigned long frames[pages];
 	int f;
 
-	/* A GDT can be up to 64k in size, which corresponds to 8192
-	   8-byte entries, or 16 4k pages.. */
+	/*
+	 * A GDT can be up to 64k in size, which corresponds to 8192
+	 * 8-byte entries, or 16 4k pages..
+	 */
 
 	BUG_ON(size > 65536);
 	BUG_ON(va & ~PAGE_MASK);
 
 	for (f = 0; va < dtr->address + size; va += PAGE_SIZE, f++) {
 		int level;
-		pte_t *ptep = lookup_address(va, &level);
+		pte_t *ptep;
 		unsigned long pfn, mfn;
 		void *virt;
 
+		/*
+		 * The GDT is per-cpu and is in the percpu data area.
+		 * That can be virtually mapped, so we need to do a
+		 * page-walk to get the underlying MFN for the
+		 * hypercall.  The page can also be in the kernel's
+		 * linear range, so we need to RO that mapping too.
+		 */
+		ptep = lookup_address(va, &level);
 		BUG_ON(ptep == NULL);
 
 		pfn = pte_pfn(*ptep);
@@ -358,6 +369,44 @@ static void xen_load_gdt(const struct de
 		BUG();
 }
 
+/*
+ * load_gdt for early boot, when the gdt is only mapped once
+ */
+static __init void xen_load_gdt_boot(const struct desc_ptr *dtr)
+{
+	unsigned long va = dtr->address;
+	unsigned int size = dtr->size + 1;
+	unsigned pages = (size + PAGE_SIZE - 1) / PAGE_SIZE;
+	unsigned long frames[pages];
+	int f;
+
+	/*
+	 * A GDT can be up to 64k in size, which corresponds to 8192
+	 * 8-byte entries, or 16 4k pages..
+	 */
+
+	BUG_ON(size > 65536);
+	BUG_ON(va & ~PAGE_MASK);
+
+	for (f = 0; va < dtr->address + size; va += PAGE_SIZE, f++) {
+		pte_t pte;
+		unsigned long pfn, mfn;
+
+		pfn = virt_to_pfn(va);
+		mfn = pfn_to_mfn(pfn);
+
+		pte = pfn_pte(pfn, PAGE_KERNEL_RO);
+
+		if (HYPERVISOR_update_va_mapping((unsigned long)va, pte, 0))
+			BUG();
+
+		frames[f] = mfn;
+	}
+
+	if (HYPERVISOR_set_gdt(frames, size / sizeof(struct desc_struct)))
+		BUG();
+}
+
 static void load_TLS_descriptor(struct thread_struct *t,
 				unsigned int cpu, unsigned int i)
 {
@@ -581,6 +630,29 @@ static void xen_write_gdt_entry(struct d
 	preempt_enable();
 }
 
+/*
+ * Version of write_gdt_entry for use at early boot-time needed to
+ * update an entry as simply as possible.
+ */
+static __init void xen_write_gdt_entry_boot(struct desc_struct *dt, int entry,
+					    const void *desc, int type)
+{
+	switch (type) {
+	case DESC_LDT:
+	case DESC_TSS:
+		/* ignore */
+		break;
+
+	default: {
+		xmaddr_t maddr = virt_to_machine(&dt[entry]);
+
+		if (HYPERVISOR_update_descriptor(maddr.maddr, *(u64 *)desc))
+			dt[entry] = *(struct desc_struct *)desc;
+	}
+
+	}
+}
+
 static void xen_load_sp0(struct tss_struct *tss,
 			 struct thread_struct *thread)
 {
@@ -965,6 +1037,23 @@ static const struct machine_ops __initda
 	.emergency_restart = xen_emergency_restart,
 };
 
+/*
+ * Set up the GDT and segment registers for -fstack-protector.  Until
+ * we do this, we have to be careful not to call any stack-protected
+ * function, which is most of the kernel.
+ */
+static void __init xen_setup_stackprotector(void)
+{
+	pv_cpu_ops.write_gdt_entry = xen_write_gdt_entry_boot;
+	pv_cpu_ops.load_gdt = xen_load_gdt_boot;
+
+	setup_stack_canary_segment(0);
+	switch_to_new_gdt(0);
+
+	pv_cpu_ops.write_gdt_entry = xen_write_gdt_entry;
+	pv_cpu_ops.load_gdt = xen_load_gdt;
+}
+
 /* First C function to be called on Xen boot */
 asmlinkage void __init xen_start_kernel(void)
 {
@@ -983,13 +1072,28 @@ asmlinkage void __init xen_start_kernel(
 	pv_apic_ops = xen_apic_ops;
 	pv_mmu_ops = xen_mmu_ops;
 
-#ifdef CONFIG_X86_64
 	/*
-	 * Setup percpu state.  We only need to do this for 64-bit
-	 * because 32-bit already has %fs set properly.
+	 * Set up some pagetable state before starting to set any ptes.
 	 */
-	load_percpu_segment(0);
-#endif
+
+	/* Prevent unwanted bits from being set in PTEs. */
+	__supported_pte_mask &= ~_PAGE_GLOBAL;
+	if (!xen_initial_domain())
+		__supported_pte_mask &= ~(_PAGE_PWT | _PAGE_PCD);
+
+	__supported_pte_mask |= _PAGE_IOMAP;
+
+	xen_setup_features();
+
+	/* Get mfn list */
+	if (!xen_feature(XENFEAT_auto_translated_physmap))
+		xen_build_dynamic_phys_to_machine();
+
+	/*
+	 * Set up kernel GDT and segment registers, mainly so that
+	 * -fstack-protector code can be executed.
+	 */
+	xen_setup_stackprotector();
 
 	xen_init_irq_ops();
 	xen_init_cpuid_mask();
@@ -1001,8 +1105,6 @@ asmlinkage void __init xen_start_kernel(
 	set_xen_basic_apic_ops();
 #endif
 
-	xen_setup_features();
-
 	if (xen_feature(XENFEAT_mmu_pt_update_preserve_ad)) {
 		pv_mmu_ops.ptep_modify_prot_start = xen_ptep_modify_prot_start;
 		pv_mmu_ops.ptep_modify_prot_commit = xen_ptep_modify_prot_commit;
@@ -1019,17 +1121,8 @@ asmlinkage void __init xen_start_kernel(
 
 	xen_smp_init();
 
-	/* Get mfn list */
-	if (!xen_feature(XENFEAT_auto_translated_physmap))
-		xen_build_dynamic_phys_to_machine();
-
 	pgd = (pgd_t *)xen_start_info->pt_base;
 
-	/* Prevent unwanted bits from being set in PTEs. */
-	__supported_pte_mask &= ~_PAGE_GLOBAL;
-	if (!xen_initial_domain())
-		__supported_pte_mask &= ~(_PAGE_PWT | _PAGE_PCD);
-
 #ifdef CONFIG_X86_64
 	/* Work out if we support NX */
 	check_efer();
--- a/arch/x86/xen/Makefile
+++ b/arch/x86/xen/Makefile
@@ -8,6 +8,7 @@ endif
 # Make sure early boot has no stackprotector
 nostackp := $(call cc-option, -fno-stack-protector)
 CFLAGS_enlighten.o		:= $(nostackp)
+CFLAGS_mmu.o			:= $(nostackp)
 
 obj-y		:= enlighten.o setup.o multicalls.o mmu.o irq.o \
 			time.o xen-asm.o xen-asm_$(BITS).o \
@@ -16,3 +17,4 @@ obj-y		:= enlighten.o setup.o multicalls
 obj-$(CONFIG_SMP)		+= smp.o
 obj-$(CONFIG_PARAVIRT_SPINLOCKS)+= spinlock.o
 obj-$(CONFIG_XEN_DEBUG_FS)	+= debugfs.o
+
--- a/arch/x86/xen/smp.c
+++ b/arch/x86/xen/smp.c
@@ -236,6 +236,7 @@ cpu_initialize_context(unsigned int cpu,
 	ctxt->user_regs.ss = __KERNEL_DS;
 #ifdef CONFIG_X86_32
 	ctxt->user_regs.fs = __KERNEL_PERCPU;
+	ctxt->user_regs.gs = __KERNEL_STACK_CANARY;
 #else
 	ctxt->gs_base_kernel = per_cpu_offset(cpu);
 #endif
--- a/drivers/xen/Makefile
+++ b/drivers/xen/Makefile
@@ -1,6 +1,9 @@
 obj-y	+= grant-table.o features.o events.o manage.o
 obj-y	+= xenbus/
 
+nostackp := $(call cc-option, -fno-stack-protector)
+CFLAGS_features.o			:= $(nostackp)
+
 obj-$(CONFIG_HOTPLUG_CPU)	+= cpu_hotplug.o
 obj-$(CONFIG_XEN_XENCOMM)	+= xencomm.o
 obj-$(CONFIG_XEN_BALLOON)	+= balloon.o



  parent reply	other threads:[~2009-10-02  1:58 UTC|newest]

Thread overview: 155+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20091002011548.335611824@mini.kroah.org>
2009-10-02  1:29 ` [000/136] 2.6.31.2-stable review Greg KH
2009-10-02  1:15   ` [001/136] KVM: VMX: Fix EPT with WP bit change during paging Greg KH
2009-10-02  1:15   ` [002/136] pata_amd: do not filter out valid modes in nv_mode_filter Greg KH
2009-10-02  1:15   ` [003/136] p54usb: add Zcomax XG-705A usbid Greg KH
2009-10-02  1:15   ` [004/136] x86: Increase MIN_GAP to include randomized stack Greg KH
2009-10-02  1:15   ` [005/136] serial: bfin_5xx: fix building as module when early printk is enabled Greg KH
2009-10-02  1:15   ` [006/136] USB: option.c Add support for ZTE AC2726 EVDO modem Greg KH
2009-10-02  1:15   ` [007/136] USB: option: TELIT UC864G support Greg KH
2009-10-02  1:15   ` [008/136] video: s3c_fb.c: fix build with CONFIG_HOTPLUG=n Greg KH
2009-10-02  1:15   ` [009/136] kbuild: fix cc1 options check to ensure we do not use -fPIC when compiling Greg KH
2009-10-02  1:15   ` [010/136] drivers/mfd/ab3100-core.c: fix powerpc build error Greg KH
2009-10-02  1:15   ` [011/136] thinkpad-acpi: dont ask about brightness_mode for fw. 1V and 1R Greg KH
2009-10-02  1:16   ` [012/136] ACPI: pci_slot.ko wants a 64-bit _SUN Greg KH
2009-10-02  1:16   ` [013/136] fbcon: only unbind from console if successfully registered Greg KH
2009-10-02  1:16   ` [014/136] kallsyms: fix segfault in prefix_underscores_count() Greg KH
2009-10-02  1:16   ` [015/136] sisfb: change SiS_DDC_Port type to SISIOADDRESS Greg KH
2009-10-02  1:16   ` [016/136] mmc_spi: fail gracefully if host or card do not support the switch command Greg KH
2009-10-02  1:16   ` [017/136] alpha: AGP update (fixes compile failure) Greg KH
2009-10-02  1:16   ` [018/136] fs: make sure data stored into inode is properly seen before unlocking new inode Greg KH
2009-10-02  1:16   ` [019/136] eCryptfs: Handle unrecognized tag 3 cipher codes Greg KH
2009-10-02  1:16   ` [020/136] eCryptfs: Check for O_RDONLY lower inodes when opening lower files Greg KH
2009-10-02  1:16   ` [021/136] eCryptfs: Filename encryption only supports password auth tokens Greg KH
2009-10-02  1:16   ` [022/136] eCryptfs: Validate global auth tok keys Greg KH
2009-10-02  1:16   ` [023/136] eCryptfs: Prevent lower dentry from going negative during unlink Greg KH
2009-10-02  1:16   ` [024/136] [CIFS] Re-enable Lanman security Greg KH
2009-10-02  1:16   ` Greg KH [this message]
2009-10-02  1:16   ` [026/136] xen: only enable interrupts while actually blocking for spinlock Greg KH
2009-10-02  1:16   ` [027/136] xen: use stronger barrier after unlocking lock Greg KH
2009-10-02  1:16   ` [028/136] xen: check EFER for NX before setting up GDT mapping Greg KH
2009-10-02  1:16   ` [029/136] perf_counter: Fix perf_copy_attr() pointer arithmetic Greg KH
2009-10-02  1:16   ` [030/136] perf tools: Fix buffer allocation Greg KH
2009-10-02  1:16   ` [031/136] tty: serial/pcmcia: add ID for Advantech card Greg KH
2009-10-02  1:16   ` [032/136] PM / PCMCIA: Drop second argument of pcmcia_socket_dev_suspend() Greg KH
2009-10-02  1:16   ` [033/136] PM / yenta: Fix cardbus suspend/resume regression Greg KH
2009-10-02  1:16   ` [034/136] sony-laptop: check for rfkill hard block at load time Greg KH
2009-10-02  1:16   ` [035/136] nilfs2: fix missing zero-fill initialization of btree node cache Greg KH
2009-10-02  1:16   ` [036/136] ar9170usb: add usbid for TP-Link TL-WN821N v2 Greg KH
2009-10-02  1:16   ` [037/136] mtd: nand: fix ECC Correction bug for SMC ordering for NDFC driver Greg KH
2009-10-02  1:16   ` [038/136] mtd: ofpart: Check availability of reg property instead of name property Greg KH
2009-10-02  1:16   ` [039/136] mtd: cfi_cmdset_0002: add 0xFF intolerance for M29W128G Greg KH
2009-10-02  1:16   ` [040/136] USB: serial: ftdi_sio: new hardware support - hameg power supply Greg KH
2009-10-02  1:16   ` [041/136] USB: add PIDs for FTDI based OpenDCC hardware Greg KH
2009-10-02  1:16   ` [042/136] USB: serial: ftdi: handle gnICE+ JTAG adaptors Greg KH
2009-10-02  1:16   ` [043/136] USB: CDC WDM driver doesnt support non-blocking reads Greg KH
2009-10-02  1:16   ` [044/136] USB: fix cdc-acm regression in open Greg KH
2009-10-02  1:16   ` [045/136] cdc_acm: Fix to use modern speed interfaces Greg KH
2009-10-02  1:16   ` [046/136] tty: remove dtr/rts use from the driver open methods Greg KH
2009-10-02  1:16   ` [047/136] tty: gigaset: really fix chars_in_buffer Greg KH
2009-10-02  1:16   ` [048/136] kaweth: Fix memory leak in kaweth_control() Greg KH
2009-10-02  1:16   ` [049/136] x86: SGI UV: Fix IPI macros Greg KH
2009-10-02  1:16   ` [050/136] USB: serial: pl2303: new hardware support - sanwa multimeter Greg KH
2009-10-02  1:16   ` [051/136] USB: storage: fix a resume path GFP_NOIO must be used Greg KH
2009-10-02  1:16   ` [052/136] USB: usb-storage fails to attach to Huawei Datacard cdrom device Greg KH
2009-10-02  1:16   ` [053/136] USB: usbtmc: sanity checks for DEV_DEP_MSG_IN urbs Greg KH
2009-10-02  1:16   ` [054/136] USB: sl811-hcd: Fix device disconnect: Greg KH
2009-10-02  1:16   ` [055/136] drm/i915: remove restore in resume Greg KH
2009-10-02  1:16   ` [056/136] drm/i915: Only destroy a constructed mmap offset Greg KH
2009-10-02  1:16   ` [057/136] drm/i915: prevent FIFO calculation overflows on 32 bits with high dotclocks Greg KH
2009-10-02  1:16   ` [058/136] drm/i915: Add buffer to inactive list immediately during fault Greg KH
2009-10-02  1:16   ` [059/136] drm/i915: Check that the relocation points to within the target Greg KH
2009-10-02  1:16   ` [060/136] drm/i915: Fix typo for wrong LVDS clock setting on IGDNG Greg KH
2009-10-02  1:16   ` [061/136] drm/i915: Fix SSC frequence for IGDNG Greg KH
2009-10-02  1:16   ` [062/136] drm/i915: Remove DAC disable in CRT force detect on IGDNG Greg KH
2009-10-02  1:16   ` [063/136] drm/i915: Fix LVDS panel fitting on Arrandale Greg KH
2009-10-02  1:16   ` [064/136] drm/I915: Use the CRT DDC to get the EDID for DVI-connector on Mac Greg KH
2009-10-02  1:16   ` [065/136] drm/i915: fix tiling on IGDNG Greg KH
2009-10-02  1:16   ` [066/136] agp/intel: Fix the pre-9xx chipset flush Greg KH
2009-10-02  1:16   ` [067/136] nfsd4: fix null dereference creating nfsv4 callback client Greg KH
2009-10-02  1:16   ` [068/136] can: fix NOHZ local_softirq_pending 08 warning Greg KH
2009-10-02  1:16   ` [069/136] ahci: restore pci_intx() handling Greg KH
2009-10-02  1:16   ` [070/136] [ARM] pxa/sharpsl_pm: zaurus c3000 aka spitz: fix resume Greg KH
2009-10-02  1:16   ` [071/136] net ax25: Fix signed comparison in the sockopt handler Greg KH
2009-10-02  1:17   ` [072/136] net: Make the copy length in af_packet sockopt handler unsigned Greg KH
2009-10-02  1:17   ` [073/136] pty_write: dont do a tty_wakeup() when the buffers are full Greg KH
2009-10-02  1:17   ` [074/136] KVM: fix cpuid E2BIG handling for extended request types Greg KH
2009-10-02  1:17   ` [075/136] KVM: MMU: fix missing locking in alloc_mmu_pages Greg KH
2009-10-02  1:17   ` [076/136] KVM: MMU: fix bogus alloc_mmu_pages assignment Greg KH
2009-10-02  1:17   ` [077/136] KVM: Protect update_cr8_intercept() when running without an apic Greg KH
2009-10-02  1:17   ` [078/136] Revert "KVM: x86: check for cr3 validity in ioctl_set_sregs" Greg KH
2009-10-02  1:17   ` [079/136] [CPUFREQ] Fix NULL ptr regression in powernow-k8 Greg KH
2009-10-03 15:19     ` Herton Ronaldo Krzesinski
2009-10-05 16:08       ` [Stable-review] " Greg KH
2009-10-02  1:17   ` [080/136] perf tools: do not complain if root is owning perf.data Greg KH
2009-10-02  1:17   ` [081/136] netfilter: nf_nat: fix inverted logic for persistent NAT mappings Greg KH
2009-10-02  1:17   ` [082/136] netfilter: nf_conntrack: netns fix re reliable conntrack event delivery Greg KH
2009-10-02  1:17   ` [083/136] netfilter: bridge: refcount fix Greg KH
2009-10-02  1:17   ` [084/136] netfilter: ebt_ulog: fix checkentry return value Greg KH
2009-10-02  1:17   ` [085/136] ath5k: Wakeup fixes Greg KH
2009-10-02  1:17   ` [086/136] ath5k: do not release irq across suspend/resume Greg KH
2009-10-02  1:17   ` [087/136] Driver core: add new device to buss list before probing Greg KH
2009-10-02  1:17   ` [088/136] tty: Add a full port_close function Greg KH
2009-10-02  1:17   ` [089/136] tty: USB hangup is racy Greg KH
2009-10-02  1:17   ` [090/136] tty: USB can now use the shutdown method for kref based freeing of ports Greg KH
2009-10-02  1:17   ` [091/136] hwmon: (asus_atk0110) Add maintainer information Greg KH
2009-10-02  1:17   ` [092/136] tty: USB serial termios bits Greg KH
2009-10-02  1:17   ` [093/136] usb-serial: change referencing of port and serial structures Greg KH
2009-10-02  1:17   ` [094/136] usb-serial: put subroutines in logical order Greg KH
2009-10-02  1:17   ` [095/136] usb-serial: change logic of serial lookups Greg KH
2009-10-02  1:17   ` [096/136] usb-serial: acquire references when a new tty is installed Greg KH
2009-10-02  1:17   ` [097/136] usb-serial: fix termios initialization logic Greg KH
2009-10-02  1:17   ` [098/136] usb-serial: rename subroutines Greg KH
2009-10-02  1:17   ` [099/136] usb-serial: add missing tests and debug lines Greg KH
2009-10-02  1:17   ` [100/136] usb-serial: straighten out serial_open Greg KH
2009-10-02  1:17   ` [101/136] USB serial: update the console driver Greg KH
2009-10-02  1:17   ` [102/136] USB: xhci: Work around for chain bit in link TRBs Greg KH
2009-10-02  1:17   ` [103/136] USB: xhci: Fix slot and endpoint context debugging Greg KH
2009-10-02  1:17   ` [104/136] USB: xhci: Configure endpoint code refactoring Greg KH
2009-10-02  1:17   ` [105/136] USB: xhci: Set correct max packet size for HS/FS control endpoints Greg KH
2009-10-02  1:17   ` [106/136] USB: xhci: Support full speed devices Greg KH
2009-10-02  1:17   ` [107/136] USB: xhci: Handle stalled control endpoints Greg KH
2009-10-02  1:17   ` [108/136] USB: xhci: Add quirk for Fresco Logic xHCI hardware Greg KH
2009-10-02  1:17   ` [109/136] USB: xhci: Make TRB completion code comparison readable Greg KH
2009-10-02 16:38     ` David Vrabel
2009-10-02 16:53       ` [stable] " Greg KH
2009-10-02 17:23         ` David Vrabel
2009-10-02 17:35           ` Greg KH
2009-10-02  1:17   ` [110/136] USB: xhci: Handle babbling endpoints correctly Greg KH
2009-10-02  1:17   ` [111/136] USB: xhci: Dont touch xhci_td after its freed Greg KH
2009-10-02  1:17   ` [112/136] USB: xhci: Check URBs actual transfer buffer size Greg KH
2009-10-02  1:17   ` [113/136] USB: xhci: Check URB_SHORT_NOT_OK before setting short packet status Greg KH
2009-10-02  1:17   ` [114/136] USB: xhci: Set -EREMOTEIO when xHC gives bad transfer length Greg KH
2009-10-02  1:17   ` [115/136] USB: xhci: Support interrupt transfers Greg KH
2009-10-02  1:17   ` [116/136] USB: Fix SS endpoint companion descriptor parsing Greg KH
2009-10-02  1:17   ` [117/136] /proc/kcore: work around a BUG() Greg KH
2009-10-02  1:17   ` [118/136] hugetlb: restore interleaving of bootmem huge pages (2.6.31) Greg KH
2009-10-02  1:17   ` [119/136] page-allocator: limit the number of MIGRATE_RESERVE pageblocks per zone Greg KH
2009-10-02  1:17   ` [120/136] mm: munlock use follow_page Greg KH
2009-10-02 16:46     ` Hugh Dickins
2009-10-02 16:54       ` Greg KH
2009-10-02  1:17   ` [121/136] mm: fix anonymous dirtying Greg KH
2009-10-02 16:34     ` Hugh Dickins
2009-10-02 16:55       ` Greg KH
2009-10-02  1:17   ` [122/136] mmap: avoid unnecessary anon_vma lock acquisition in vma_adjust() Greg KH
2009-10-02 16:36     ` Hugh Dickins
2009-10-02 16:54       ` Greg KH
2009-10-02  1:17   ` [123/136] Fix idle time field in /proc/uptime Greg KH
2009-10-02  1:17   ` [124/136] drm/i915: Handle ERESTARTSYS during page fault Greg KH
2009-10-02  1:17   ` [125/136] em28xx: ir-kbd-i2c init data needs a persistent object Greg KH
2009-10-02  1:17   ` [126/136] saa7134: " Greg KH
2009-10-02  1:17   ` [127/136] powerpc/8xx: Fix regression introduced by cache coherency rewrite Greg KH
2009-10-02  1:17   ` [128/136] powerpc: Fix incorrect setting of __HAVE_ARCH_PTE_SPECIAL Greg KH
2009-10-02  1:17   ` [129/136] HID: completely remove apple mightymouse from blacklist Greg KH
2009-10-02  1:17   ` [130/136] [SCSI] mptsas : PAE Kernel more than 4 GB kernel panic Greg KH
2009-10-02  1:17   ` [131/136] NOMMU: Fix MAP_PRIVATE mmap() of objects where the data can be mapped directly Greg KH
2009-10-02  1:18   ` [132/136] iwlwifi: Handle new firmware file with ucode build number in header Greg KH
2009-10-02  1:18   ` [133/136] iwlwifi: update 1000 series API version to match firmware Greg KH
2009-10-02  1:18   ` [134/136] iwlagn: modify digital SVR for 1000 Greg KH
2009-10-02  1:18   ` [135/136] iwlwifi: traverse linklist to find the valid OTP block Greg KH
2009-10-02  1:18   ` [136/136] iwlwifi: fix unloading driver while scanning Greg KH
2009-10-02  5:01   ` [000/136] 2.6.31.2-stable review Eric W. Biederman
2009-10-02  5:10     ` Greg KH
2009-10-02  5:34       ` Eric W. Biederman
2009-10-02  6:06       ` Eric W. Biederman
2009-10-06  0:12   ` Daisuke Nishimura
2009-10-09 22:30     ` [Stable-review] " Greg KH

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20091002012409.555944588@mini.kroah.org \
    --to=gregkh@suse.de \
    --cc=akpm@linux-foundation.org \
    --cc=alan@lxorguk.ukuu.org.uk \
    --cc=jeremy.fitzhardinge@citrix.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable-review@kernel.org \
    --cc=stable@kernel.org \
    --cc=torvalds@linux-foundation.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox