All of lore.kernel.org
 help / color / mirror / Atom feed
From: Ben Hutchings <ben@decadent.org.uk>
To: linux-kernel@vger.kernel.org, stable@vger.kernel.org
Cc: akpm@linux-foundation.org, linux-arch@vger.kernel.org,
	"Jan Engelhardt" <jengelh@inai.de>,
	"Linus Torvalds" <torvalds@linux-foundation.org>,
	"Heiko Carstens" <heiko.carstens@de.ibm.com>
Subject: [PATCH 3.2 134/152] vm: add VM_FAULT_SIGSEGV handling support
Date: Tue, 17 Feb 2015 01:46:53 +0000	[thread overview]
Message-ID: <lsq.1424137613.461742024@decadent.org.uk> (raw)
In-Reply-To: <lsq.1424137613.308090640@decadent.org.uk>

3.2.67-rc1 review patch.  If anyone has any objections, please let me know.

------------------

From: Linus Torvalds <torvalds@linux-foundation.org>

commit 33692f27597fcab536d7cbbcc8f52905133e4aa7 upstream.

The core VM already knows about VM_FAULT_SIGBUS, but cannot return a
"you should SIGSEGV" error, because the SIGSEGV case was generally
handled by the caller - usually the architecture fault handler.

That results in lots of duplication - all the architecture fault
handlers end up doing very similar "look up vma, check permissions, do
retries etc" - but it generally works.  However, there are cases where
the VM actually wants to SIGSEGV, and applications _expect_ SIGSEGV.

In particular, when accessing the stack guard page, libsigsegv expects a
SIGSEGV.  And it usually got one, because the stack growth is handled by
that duplicated architecture fault handler.

However, when the generic VM layer started propagating the error return
from the stack expansion in commit fee7e49d4514 ("mm: propagate error
from stack expansion even for guard page"), that now exposed the
existing VM_FAULT_SIGBUS result to user space.  And user space really
expected SIGSEGV, not SIGBUS.

To fix that case, we need to add a VM_FAULT_SIGSEGV, and teach all those
duplicate architecture fault handlers about it.  They all already have
the code to handle SIGSEGV, so it's about just tying that new return
value to the existing code, but it's all a bit annoying.

This is the mindless minimal patch to do this.  A more extensive patch
would be to try to gather up the mostly shared fault handling logic into
one generic helper routine, and long-term we really should do that
cleanup.

Just from this patch, you can generally see that most architectures just
copied (directly or indirectly) the old x86 way of doing things, but in
the meantime that original x86 model has been improved to hold the VM
semaphore for shorter times etc and to handle VM_FAULT_RETRY and other
"newer" things, so it would be a good idea to bring all those
improvements to the generic case and teach other architectures about
them too.

Reported-and-tested-by: Takashi Iwai <tiwai@suse.de>
Tested-by: Jan Engelhardt <jengelh@inai.de>
Acked-by: Heiko Carstens <heiko.carstens@de.ibm.com> # "s390 still compiles and boots"
Cc: linux-arch@vger.kernel.org
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
[bwh: Backported to 3.2:
 - Adjust filenames, context
 - Drop arc, metag, nios2 and lustre changes
 - For sh, patch both 32-bit and 64-bit implementations to use goto bad_area
 - For s390, pass int_code and trans_exc_code as arguments to do_no_context()
   and do_sigsegv()]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
--- a/arch/alpha/mm/fault.c
+++ b/arch/alpha/mm/fault.c
@@ -150,6 +150,8 @@ do_page_fault(unsigned long address, uns
 	if (unlikely(fault & VM_FAULT_ERROR)) {
 		if (fault & VM_FAULT_OOM)
 			goto out_of_memory;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto do_sigbus;
 		BUG();
--- a/arch/avr32/mm/fault.c
+++ b/arch/avr32/mm/fault.c
@@ -136,6 +136,8 @@ good_area:
 	if (unlikely(fault & VM_FAULT_ERROR)) {
 		if (fault & VM_FAULT_OOM)
 			goto out_of_memory;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto do_sigbus;
 		BUG();
--- a/arch/cris/mm/fault.c
+++ b/arch/cris/mm/fault.c
@@ -166,6 +166,8 @@ do_page_fault(unsigned long address, str
 	if (unlikely(fault & VM_FAULT_ERROR)) {
 		if (fault & VM_FAULT_OOM)
 			goto out_of_memory;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto do_sigbus;
 		BUG();
--- a/arch/frv/mm/fault.c
+++ b/arch/frv/mm/fault.c
@@ -167,6 +167,8 @@ asmlinkage void do_page_fault(int datamm
 	if (unlikely(fault & VM_FAULT_ERROR)) {
 		if (fault & VM_FAULT_OOM)
 			goto out_of_memory;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto do_sigbus;
 		BUG();
--- a/arch/ia64/mm/fault.c
+++ b/arch/ia64/mm/fault.c
@@ -163,6 +163,8 @@ ia64_do_page_fault (unsigned long addres
 		 */
 		if (fault & VM_FAULT_OOM) {
 			goto out_of_memory;
+		} else if (fault & VM_FAULT_SIGSEGV) {
+			goto bad_area;
 		} else if (fault & VM_FAULT_SIGBUS) {
 			signal = SIGBUS;
 			goto bad_area;
--- a/arch/m32r/mm/fault.c
+++ b/arch/m32r/mm/fault.c
@@ -199,6 +199,8 @@ good_area:
 	if (unlikely(fault & VM_FAULT_ERROR)) {
 		if (fault & VM_FAULT_OOM)
 			goto out_of_memory;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto do_sigbus;
 		BUG();
--- a/arch/m68k/mm/fault.c
+++ b/arch/m68k/mm/fault.c
@@ -147,6 +147,8 @@ good_area:
 	if (unlikely(fault & VM_FAULT_ERROR)) {
 		if (fault & VM_FAULT_OOM)
 			goto out_of_memory;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto map_err;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto bus_err;
 		BUG();
--- a/arch/microblaze/mm/fault.c
+++ b/arch/microblaze/mm/fault.c
@@ -215,6 +215,8 @@ good_area:
 	if (unlikely(fault & VM_FAULT_ERROR)) {
 		if (fault & VM_FAULT_OOM)
 			goto out_of_memory;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto do_sigbus;
 		BUG();
--- a/arch/mips/mm/fault.c
+++ b/arch/mips/mm/fault.c
@@ -149,6 +149,8 @@ good_area:
 	if (unlikely(fault & VM_FAULT_ERROR)) {
 		if (fault & VM_FAULT_OOM)
 			goto out_of_memory;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto do_sigbus;
 		BUG();
--- a/arch/mn10300/mm/fault.c
+++ b/arch/mn10300/mm/fault.c
@@ -256,6 +256,8 @@ good_area:
 	if (unlikely(fault & VM_FAULT_ERROR)) {
 		if (fault & VM_FAULT_OOM)
 			goto out_of_memory;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto do_sigbus;
 		BUG();
--- a/arch/openrisc/mm/fault.c
+++ b/arch/openrisc/mm/fault.c
@@ -163,6 +163,8 @@ good_area:
 	if (unlikely(fault & VM_FAULT_ERROR)) {
 		if (fault & VM_FAULT_OOM)
 			goto out_of_memory;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto do_sigbus;
 		BUG();
--- a/arch/parisc/mm/fault.c
+++ b/arch/parisc/mm/fault.c
@@ -210,6 +210,8 @@ good_area:
 		 */
 		if (fault & VM_FAULT_OOM)
 			goto out_of_memory;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto bad_area;
 		BUG();
--- a/arch/powerpc/platforms/cell/spu_fault.c
+++ b/arch/powerpc/platforms/cell/spu_fault.c
@@ -75,7 +75,7 @@ int spu_handle_mm_fault(struct mm_struct
 		if (*flt & VM_FAULT_OOM) {
 			ret = -ENOMEM;
 			goto out_unlock;
-		} else if (*flt & VM_FAULT_SIGBUS) {
+		} else if (*flt & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV)) {
 			ret = -EFAULT;
 			goto out_unlock;
 		}
--- a/arch/powerpc/mm/fault.c
+++ b/arch/powerpc/mm/fault.c
@@ -312,6 +312,8 @@ good_area:
 	 */
 	ret = handle_mm_fault(mm, vma, address, is_write ? FAULT_FLAG_WRITE : 0);
 	if (unlikely(ret & VM_FAULT_ERROR)) {
+		if (ret & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		if (ret & VM_FAULT_OOM)
 			goto out_of_memory;
 		else if (ret & VM_FAULT_SIGBUS)
--- a/arch/s390/mm/fault.c
+++ b/arch/s390/mm/fault.c
@@ -249,6 +249,13 @@ static noinline void do_fault_error(stru
 				do_no_context(regs, int_code, trans_exc_code);
 			else
 				pagefault_out_of_memory();
+		} else if (fault & VM_FAULT_SIGSEGV) {
+			/* Kernel mode? Handle exceptions or die */
+			if (!user_mode(regs))
+				do_no_context(regs, int_code, trans_exc_code);
+			else
+				do_sigsegv(regs, int_code, SEGV_MAPERR,
+					   trans_exc_code);
 		} else if (fault & VM_FAULT_SIGBUS) {
 			/* Kernel mode? Handle exceptions or die */
 			if (!(regs->psw.mask & PSW_MASK_PSTATE))
--- a/arch/score/mm/fault.c
+++ b/arch/score/mm/fault.c
@@ -110,6 +110,8 @@ survive:
 	if (unlikely(fault & VM_FAULT_ERROR)) {
 		if (fault & VM_FAULT_OOM)
 			goto out_of_memory;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto do_sigbus;
 		BUG();
--- a/arch/sh/mm/fault_32.c
+++ b/arch/sh/mm/fault_32.c
@@ -206,6 +206,8 @@ good_area:
 			goto out_of_memory;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto do_sigbus;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		BUG();
 	}
 	if (fault & VM_FAULT_MAJOR) {
--- a/arch/sh/mm/tlbflush_64.c
+++ b/arch/sh/mm/tlbflush_64.c
@@ -195,6 +195,8 @@ good_area:
 			goto out_of_memory;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto do_sigbus;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		BUG();
 	}
 
--- a/arch/sparc/mm/fault_32.c
+++ b/arch/sparc/mm/fault_32.c
@@ -294,6 +294,8 @@ good_area:
 	if (unlikely(fault & VM_FAULT_ERROR)) {
 		if (fault & VM_FAULT_OOM)
 			goto out_of_memory;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto do_sigbus;
 		BUG();
--- a/arch/sparc/mm/fault_64.c
+++ b/arch/sparc/mm/fault_64.c
@@ -435,6 +435,8 @@ good_area:
 	if (unlikely(fault & VM_FAULT_ERROR)) {
 		if (fault & VM_FAULT_OOM)
 			goto out_of_memory;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto do_sigbus;
 		BUG();
--- a/arch/tile/mm/fault.c
+++ b/arch/tile/mm/fault.c
@@ -424,6 +424,8 @@ good_area:
 	if (unlikely(fault & VM_FAULT_ERROR)) {
 		if (fault & VM_FAULT_OOM)
 			goto out_of_memory;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto do_sigbus;
 		BUG();
--- a/arch/um/kernel/trap.c
+++ b/arch/um/kernel/trap.c
@@ -69,6 +69,8 @@ good_area:
 		if (unlikely(fault & VM_FAULT_ERROR)) {
 			if (fault & VM_FAULT_OOM) {
 				goto out_of_memory;
+			} else if (fault & VM_FAULT_SIGSEGV) {
+				goto out;
 			} else if (fault & VM_FAULT_SIGBUS) {
 				err = -EACCES;
 				goto out;
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -877,6 +877,8 @@ mm_fault_error(struct pt_regs *regs, uns
 		if (fault & (VM_FAULT_SIGBUS|VM_FAULT_HWPOISON|
 			     VM_FAULT_HWPOISON_LARGE))
 			do_sigbus(regs, error_code, address, fault);
+		else if (fault & VM_FAULT_SIGSEGV)
+			bad_area_nosemaphore(regs, error_code, address);
 		else
 			BUG();
 	}
--- a/arch/xtensa/mm/fault.c
+++ b/arch/xtensa/mm/fault.c
@@ -109,6 +109,8 @@ good_area:
 	if (unlikely(fault & VM_FAULT_ERROR)) {
 		if (fault & VM_FAULT_OOM)
 			goto out_of_memory;
+		else if (fault & VM_FAULT_SIGSEGV)
+			goto bad_area;
 		else if (fault & VM_FAULT_SIGBUS)
 			goto do_sigbus;
 		BUG();
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -840,6 +840,7 @@ static inline int page_mapped(struct pag
 #define VM_FAULT_WRITE	0x0008	/* Special case for get_user_pages */
 #define VM_FAULT_HWPOISON 0x0010	/* Hit poisoned small page */
 #define VM_FAULT_HWPOISON_LARGE 0x0020  /* Hit poisoned large page. Index encoded in upper bits */
+#define VM_FAULT_SIGSEGV 0x0040
 
 #define VM_FAULT_NOPAGE	0x0100	/* ->fault installed the pte, not return page */
 #define VM_FAULT_LOCKED	0x0200	/* ->fault locked the returned page */
@@ -847,8 +848,8 @@ static inline int page_mapped(struct pag
 
 #define VM_FAULT_HWPOISON_LARGE_MASK 0xf000 /* encodes hpage index for large hwpoison */
 
-#define VM_FAULT_ERROR	(VM_FAULT_OOM | VM_FAULT_SIGBUS | VM_FAULT_HWPOISON | \
-			 VM_FAULT_HWPOISON_LARGE)
+#define VM_FAULT_ERROR	(VM_FAULT_OOM | VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV | \
+			 VM_FAULT_HWPOISON | VM_FAULT_HWPOISON_LARGE)
 
 /* Encode hstate index for a hwpoisoned large page */
 #define VM_FAULT_SET_HINDEX(x) ((x) << 12)
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -1767,7 +1767,7 @@ int __get_user_pages(struct task_struct
 						else
 							return -EFAULT;
 					}
-					if (ret & VM_FAULT_SIGBUS)
+					if (ret & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV))
 						return i ? i : -EFAULT;
 					BUG();
 				}
@@ -1871,7 +1871,7 @@ int fixup_user_fault(struct task_struct
 			return -ENOMEM;
 		if (ret & (VM_FAULT_HWPOISON | VM_FAULT_HWPOISON_LARGE))
 			return -EHWPOISON;
-		if (ret & VM_FAULT_SIGBUS)
+		if (ret & (VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV))
 			return -EFAULT;
 		BUG();
 	}
--- a/mm/ksm.c
+++ b/mm/ksm.c
@@ -342,7 +342,7 @@ static int break_ksm(struct vm_area_stru
 		else
 			ret = VM_FAULT_WRITE;
 		put_page(page);
-	} while (!(ret & (VM_FAULT_WRITE | VM_FAULT_SIGBUS | VM_FAULT_OOM)));
+	} while (!(ret & (VM_FAULT_WRITE | VM_FAULT_SIGBUS | VM_FAULT_SIGSEGV | VM_FAULT_OOM)));
 	/*
 	 * We must loop because handle_mm_fault() may back out if there's
 	 * any difficulty e.g. if pte accessed bit gets updated concurrently.


  parent reply	other threads:[~2015-02-17  2:39 UTC|newest]

Thread overview: 171+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-02-17  1:46 [PATCH 3.2 000/152] 3.2.67-rc1 review Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 010/152] ipv6: mld: fix add_grhead skb_over_panic for devs with large MTUs Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 141/152] fsnotify: next_i is freed during fsnotify_unmount_inodes Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 092/152] regulator: core: fix race condition in regulator_put() Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 054/152] ncpfs: return proper error from NCP_IOC_SETROOT ioctl Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 081/152] spi: dw-mid: fix FIFO size Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 018/152] genhd: check for int overflow in disk_expand_part_tbl() Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 079/152] ALSA: hda - Fix wrong gpio_dir & gpio_mask hint setups for IDT/STAC codecs Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 121/152] scripts/recordmcount.pl: There is no -m32 gcc option on Super-H anymore Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 113/152] gpio: sysfs: fix gpio-chip device-attribute leak Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 060/152] isofs: Fix infinite looping over CE entries Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 088/152] sata_dwc_460ex: fix resource leak on error path Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 084/152] virtio_pci: document why we defer kfree Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 145/152] tg3: tg3_disable_ints using uninitialized mailbox value to disable interrupts Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 040/152] eCryptfs: Remove buggy and unnecessary write in file name decode routine Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 001/152] eCryptfs: Force RO mount when encrypted view is enabled Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 039/152] Bluetooth: Add USB device 04ca:3010 as Atheros AR3012 Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 021/152] mfd: tc6393xb: Fail ohci suspend if full state restore is required Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 099/152] usb: gadget: udc: atmel: change setting for DMA Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 051/152] KEYS: Fix stale key registration at error path Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 071/152] x86_64, vdso: Fix the vdso address randomization algorithm Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 135/152] vm: make stack guard page errors return VM_FAULT_SIGSEGV rather than SIGBUS Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 107/152] crypto: add missing crypto module aliases Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 080/152] spi: dw: Fix detecting FIFO depth Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 013/152] driver core: Fix unbalanced device reference in drivers_probe Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 125/152] Input: i8042 - add noloop quirk for Medion Akoya E7225 (MD98857) Ben Hutchings
2015-02-17  1:46 ` Ben Hutchings [this message]
2015-02-17  1:46 ` [PATCH 3.2 090/152] time: adjtimex: Validate the ADJ_FREQUENCY values Ben Hutchings
2015-02-17 14:16   ` Luis Henriques
2015-02-17 14:16     ` Luis Henriques
2015-02-18 12:55     ` Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 083/152] virtio_pci: defer kfree until release callback Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 009/152] ipv6: Remove all uses of LL_ALLOCATED_SPACE Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 017/152] bus: omap_l3_noc: Correct returning IRQ_HANDLED unconditionally in the irq handler Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 067/152] udf: Verify i_size when loading inode Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 045/152] ath9k: fix BE/BK queue order Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 128/152] usb-storage/SCSI: blacklist FUA on JMicron 152d:2566 USB-SATA controller Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 006/152] writeback: fix a subtle race condition in I_DIRTY clearing Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 089/152] time: settimeofday: Validate the values of tv from user Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 120/152] libata: allow sata_sil24 to opt-out of tag ordered submission Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 077/152] USB: cp210x: fix ID for production CEL MeshConnect USB Stick Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 129/152] usb-core bInterval quirk Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 012/152] UBI: Fix invalid vfree() Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 122/152] libata: prevent HSM state change race between ISR and PIO Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 138/152] ACPI / EC: Fix regression due to conflicting firmware behavior between Samsung and Acer Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 151/152] KVM: x86 emulator: reject SYSENTER in compatibility mode on AMD guests Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 024/152] Bluetooth: ath3k: Add support for a new AR3012 device Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 022/152] serial: samsung: wait for transfer completion before clock disable Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 061/152] iscsi-target: Fail connection on short sendmsg writes Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 117/152] gpio: sysfs: fix gpio attribute-creation race Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 094/152] mm: prevent endless growth of anon_vma hierarchy Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 007/152] usb: renesas_usbhs: gadget: fix NULL pointer dereference in ep_disable() Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 016/152] scsi: correct return values for .eh_abort_handler implementations Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 033/152] Bluetooth: Ignore isochronous endpoints for Intel USB bootloader Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 055/152] x86_64, switch_to(): Load TLS descriptors before switching DS and ES Ben Hutchings
2015-02-24 15:47   ` Denys Vlasenko
2015-02-24 20:02     ` Andy Lutomirski
2015-02-24 20:08       ` Denys Vlasenko
2015-02-25  3:23         ` Brian Gerst
2015-02-26 15:32           ` Andy Lutomirski
2015-02-26 16:28             ` Brian Gerst
2015-02-26 19:17               ` Andy Lutomirski
2015-02-17  1:46 ` [PATCH 3.2 065/152] ocfs2: fix journal commit deadlock Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 114/152] gpiolib: Refactor gpio_export Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 034/152] Bluetooth: Add support for Acer [13D3:3432] Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 050/152] ALSA: usb-audio: Don't resubmit pending URBs at MIDI error recovery Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 130/152] USB: Add OTG PET device to TPL Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 147/152] net/core: Handle csum for CHECKSUM_COMPLETE VXLAN forwarding Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 118/152] net: sctp: fix race for one-to-many sockets in sendmsg's auto associate Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 059/152] x86/tls: Disallow unusual TLS segments Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 046/152] ath5k: fix hardware queue index assignment Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 082/152] virtio: use dev_to_virtio wrapper in virtio Ben Hutchings
2015-02-17  5:26   ` Rusty Russell
2015-02-18  0:55     ` Ben Hutchings
2015-02-18  4:44       ` Rusty Russell
2015-02-17  1:46 ` [PATCH 3.2 146/152] enic: fix rx skb checksum Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 035/152] Bluetooth: Add support for Broadcom device of Asus Z97-DELUXE motherboard Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 064/152] ALSA: usb-audio: extend KEF X300A FU 10 tweak to Arcam rPAC Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 140/152] x86, cpu, amd: Add workaround for family 16h, erratum 793 Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 102/152] USB: console: fix potential use after free Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 144/152] dcache: Fix locking bugs in backported "deal with deadlock in d_walk()" Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 149/152] splice: Apply generic position and size checks to each write Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 132/152] ALSA: seq-dummy: remove deadlock-causing events on close Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 143/152] netfilter: ipset: small potential read beyond the end of buffer Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 131/152] drm/i915: Only fence tiled region of object Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 004/152] [media] af9005: fix kernel panic on init if compiled without IR Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 148/152] vfs: Fix vfsmount_lock imbalance in path_init() Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 105/152] crypto: prefix module autoloading with "crypto-" Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 042/152] ALSA: hda - using uninitialized data Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 030/152] Bluetooth: sort the list of IDs in the source code Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 075/152] video/logo: prevent use of logos after they have been freed Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 097/152] HID: roccat: potential out of bounds in pyra_sysfs_write_settings() Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 062/152] ceph: introduce global empty snap context Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 110/152] can: dev: fix crtlmode_supported check Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 126/152] x86, tls: Interpret an all-zero struct user_desc as "no segment" Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 011/152] KVM: s390: flush CPU on load control Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 073/152] crypto: af_alg - fix backlog handling Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 074/152] net: Fix stacked vlan offload features computation Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 115/152] Fix circular locking dependency (3.3-rc2) Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 020/152] [media] uvcvideo: Fix destruction order in uvc_delete() Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 108/152] gpio: fix memory and reference leaks in gpiochip_add error path Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 057/152] genirq: Prevent proc race against freeing of irq descriptors Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 023/152] Bluetooth: btusb: Add support for Belkin F8065bf Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 049/152] hp_accel: Add support for HP ZBook 15 Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 111/152] sysfs.h: add ATTRIBUTE_GROUPS() macro Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 066/152] isofs: Fix unchecked printing of ER records Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 052/152] fib_trie: Fix /proc/net/fib_trie when CONFIG_IP_MULTIPLE_TABLES is not defined Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 096/152] mm: protect set_page_dirty() from ongoing truncation Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 091/152] Input: i8042 - reset keyboard to fix Elantech touchpad detection Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 025/152] Bluetooth: ath3k: Add support for another AR3012 card Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 072/152] udf: Check component length before reading it Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 031/152] Bluetooth: append new supported device to the list [0b05:17d0] Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 139/152] s390/3215: fix tty output containing tabs Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 070/152] udf: Check path length when reading symlink Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 003/152] [media] sound: Update au0828 quirks table Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 076/152] video/fbdev: fix defio's fsync Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 002/152] [media] sound: simplify au0828 quirk table Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 133/152] net: sctp: fix slab corruption from use after free on INIT collisions Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 078/152] Revert "tcp: Apply device TSO segment limit earlier" Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 123/152] x86, hyperv: Mark the Hyper-V clocksource as being continuous Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 037/152] Bluetooth: Add support for Acer [0489:e078] Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 085/152] USB: cp210x: add IDs for CEL USB sticks and MeshWorks devices Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 043/152] dm space map metadata: fix sm_bootstrap_get_nr_blocks() Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 027/152] Bluetooth: Enable Atheros 0cf3:311e for firmware upload Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 095/152] mm: remove unused arg of set_page_dirty_balance() Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 005/152] writeback: Move I_DIRTY_PAGES handling Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 038/152] Bluetooth: ath3k: Add support of MCI 13d3:3408 bt device Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 137/152] Revert "x86, 64bit, mm: Mark data/bss/brk to nx" Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 041/152] USB: adutux: NULL dereferences on disconnect Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 048/152] drm/vmwgfx: Don't use memory accounting for kernel-side fence objects Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 136/152] Revert "x86, mm: Set NX across entire PMD at boot" Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 014/152] drbd: merge_bvec_fn: properly remap bvm->bi_bdev Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 056/152] mac80211: fix multicast LED blinking and counter Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 101/152] usb: gadget: udc: atmel: fix possible oops when unloading module Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 036/152] Add a new PID/VID 0227/0930 for AR3012 Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 119/152] ALSA: usb-audio: Add mic volume fix quirk for Logitech Webcam C210 Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 127/152] nl80211: fix per-station group key get/del and memory leak Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 008/152] ipv4: Remove all uses of LL_ALLOCATED_SPACE Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 100/152] usb: gadget: udc: atmel: fix possible IN hang issue Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 087/152] mm: propagate error from stack expansion even for guard page Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 044/152] ath9k_hw: fix hardware queue allocation Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 109/152] ftrace/jprobes/x86: Fix conflict between jprobes and function graph tracing Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 063/152] x86/tls: Don't validate lm in set_thread_area() after all Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 152/152] KVM: x86: SYSENTER emulation is broken Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 047/152] iommu/vt-d: Fix an off-by-one bug in __domain_mapping() Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 058/152] decompress_bunzip2: off by one in get_next_block() Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 019/152] USB: cdc-acm: check for valid interfaces Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 086/152] ASoC: wm8960: Fix capture sample rate from 11250 to 11025 Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 028/152] Bluetooth: Add firmware update for Atheros 0cf3:311f Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 142/152] KEYS: close race between key lookup and freeing Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 093/152] Input: I8042 - add Acer Aspire 7738 to the nomux list Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 015/152] PCI: Restore detection of read-only BARs Ben Hutchings
2015-02-17 17:01   ` Bjorn Helgaas
2015-02-18 13:09     ` Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 069/152] udf: Treat symlink component of type 2 as / Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 116/152] gpio: sysfs: fix gpio device-attribute leak Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 106/152] crypto: include crypto- module prefix in template Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 112/152] driver core: Introduce device_create_groups Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 068/152] udf: Verify symlink size before loading it Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 029/152] Bluetooth: btusb: Add IMC Networks (Broadcom based) Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 150/152] netfilter: conntrack: disable generic tracking for known protocols Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 103/152] mm: Don't count the stack guard page towards RLIMIT_STACK Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 026/152] Bluetooth: Add support for Toshiba Bluetooth device [0930:0220] Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 098/152] OHCI: add a quirk for ULi M5237 blocking on reset Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 032/152] Bluetooth: Add support for Intel bootloader devices Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 104/152] mm: fix corner case in anon_vma endless growing prevention Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 053/152] Btrfs: fix fs corruption on transaction abort if device supports discard Ben Hutchings
2015-02-17  1:46 ` [PATCH 3.2 124/152] x86, tls, ldt: Stop checking lm in LDT_empty Ben Hutchings
2015-02-17  3:24 ` [PATCH 3.2 000/152] 3.2.67-rc1 review Ben Hutchings
2015-02-17  3:32 ` Guenter Roeck
2015-02-17 13:55   ` Ben Hutchings

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=lsq.1424137613.461742024@decadent.org.uk \
    --to=ben@decadent.org.uk \
    --cc=akpm@linux-foundation.org \
    --cc=heiko.carstens@de.ibm.com \
    --cc=jengelh@inai.de \
    --cc=linux-arch@vger.kernel.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=stable@vger.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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.