public inbox for linux-kernel@vger.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, Denis Kirjanov <kda@linux-powerpc.org>,
	"Richard Weinberger" <richard@nod.at>
Subject: [PATCH 3.16 128/202] sh: Use get_signal() signal_setup_done()
Date: Sat, 27 Apr 2019 16:13:09 +0100	[thread overview]
Message-ID: <lsq.1556377989.986158014@decadent.org.uk> (raw)
In-Reply-To: <lsq.1556377988.384060557@decadent.org.uk>

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

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

From: Richard Weinberger <richard@nod.at>

commit b46e848768acc458ba94feef162b8901592dbb9c upstream.

Use the more generic functions get_signal() signal_setup_done()
for signal delivery.

Signed-off-by: Richard Weinberger <richard@nod.at>
[bwh: Backported to 3.16 as dependency of commit 35634ffa1751
 "signal: Always notice exiting tasks"]
Signed-off-by: Ben Hutchings <ben@decadent.org.uk>
---
 arch/sh/kernel/signal_32.c | 79 +++++++++++++++---------------------
 arch/sh/kernel/signal_64.c | 82 +++++++++++++++-----------------------
 2 files changed, 64 insertions(+), 97 deletions(-)

--- a/arch/sh/kernel/signal_32.c
+++ b/arch/sh/kernel/signal_32.c
@@ -262,17 +262,17 @@ get_sigframe(struct k_sigaction *ka, uns
 extern void __kernel_sigreturn(void);
 extern void __kernel_rt_sigreturn(void);
 
-static int setup_frame(int sig, struct k_sigaction *ka,
-			sigset_t *set, struct pt_regs *regs)
+static int setup_frame(struct ksignal *ksig, sigset_t *set,
+		       struct pt_regs *regs)
 {
 	struct sigframe __user *frame;
-	int err = 0;
+	int err = 0, sig = ksig->sig;
 	int signal;
 
-	frame = get_sigframe(ka, regs->regs[15], sizeof(*frame));
+	frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame));
 
 	if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
-		goto give_sigsegv;
+		return -EFAULT;
 
 	signal = current_thread_info()->exec_domain
 		&& current_thread_info()->exec_domain->signal_invmap
@@ -288,8 +288,8 @@ static int setup_frame(int sig, struct k
 
 	/* Set up to return from userspace.  If provided, use a stub
 	   already in userspace.  */
-	if (ka->sa.sa_flags & SA_RESTORER) {
-		regs->pr = (unsigned long) ka->sa.sa_restorer;
+	if (ksig->ka.sa.sa_flags & SA_RESTORER) {
+		regs->pr = (unsigned long) ksig->ka.sa.sa_restorer;
 #ifdef CONFIG_VSYSCALL
 	} else if (likely(current->mm->context.vdso)) {
 		regs->pr = VDSO_SYM(&__kernel_sigreturn);
@@ -309,7 +309,7 @@ static int setup_frame(int sig, struct k
 	}
 
 	if (err)
-		goto give_sigsegv;
+		return -EFAULT;
 
 	/* Set up registers for signal handler */
 	regs->regs[15] = (unsigned long) frame;
@@ -319,15 +319,15 @@ static int setup_frame(int sig, struct k
 
 	if (current->personality & FDPIC_FUNCPTRS) {
 		struct fdpic_func_descriptor __user *funcptr =
-			(struct fdpic_func_descriptor __user *)ka->sa.sa_handler;
+			(struct fdpic_func_descriptor __user *)ksig->ka.sa.sa_handler;
 
 		err |= __get_user(regs->pc, &funcptr->text);
 		err |= __get_user(regs->regs[12], &funcptr->GOT);
 	} else
-		regs->pc = (unsigned long)ka->sa.sa_handler;
+		regs->pc = (unsigned long)ksig->ka.sa.sa_handler;
 
 	if (err)
-		goto give_sigsegv;
+		return -EFAULT;
 
 	set_fs(USER_DS);
 
@@ -335,23 +335,19 @@ static int setup_frame(int sig, struct k
 		 current->comm, task_pid_nr(current), frame, regs->pc, regs->pr);
 
 	return 0;
-
-give_sigsegv:
-	force_sigsegv(sig, current);
-	return -EFAULT;
 }
 
-static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
-			   sigset_t *set, struct pt_regs *regs)
+static int setup_rt_frame(struct ksignal *ksig, sigset_t *set,
+			  struct pt_regs *regs)
 {
 	struct rt_sigframe __user *frame;
-	int err = 0;
+	int err = 0, sig = ksig->sig;
 	int signal;
 
-	frame = get_sigframe(ka, regs->regs[15], sizeof(*frame));
+	frame = get_sigframe(&ksig->ka, regs->regs[15], sizeof(*frame));
 
 	if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
-		goto give_sigsegv;
+		return -EFAULT;
 
 	signal = current_thread_info()->exec_domain
 		&& current_thread_info()->exec_domain->signal_invmap
@@ -359,7 +355,7 @@ static int setup_rt_frame(int sig, struc
 		? current_thread_info()->exec_domain->signal_invmap[sig]
 		: sig;
 
-	err |= copy_siginfo_to_user(&frame->info, info);
+	err |= copy_siginfo_to_user(&frame->info, &ksig->info);
 
 	/* Create the ucontext.  */
 	err |= __put_user(0, &frame->uc.uc_flags);
@@ -371,8 +367,8 @@ static int setup_rt_frame(int sig, struc
 
 	/* Set up to return from userspace.  If provided, use a stub
 	   already in userspace.  */
-	if (ka->sa.sa_flags & SA_RESTORER) {
-		regs->pr = (unsigned long) ka->sa.sa_restorer;
+	if (ksig->ka.sa.sa_flags & SA_RESTORER) {
+		regs->pr = (unsigned long) ksig->ka.sa.sa_restorer;
 #ifdef CONFIG_VSYSCALL
 	} else if (likely(current->mm->context.vdso)) {
 		regs->pr = VDSO_SYM(&__kernel_rt_sigreturn);
@@ -392,7 +388,7 @@ static int setup_rt_frame(int sig, struc
 	}
 
 	if (err)
-		goto give_sigsegv;
+		return -EFAULT;
 
 	/* Set up registers for signal handler */
 	regs->regs[15] = (unsigned long) frame;
@@ -402,15 +398,15 @@ static int setup_rt_frame(int sig, struc
 
 	if (current->personality & FDPIC_FUNCPTRS) {
 		struct fdpic_func_descriptor __user *funcptr =
-			(struct fdpic_func_descriptor __user *)ka->sa.sa_handler;
+			(struct fdpic_func_descriptor __user *)ksig->ka.sa.sa_handler;
 
 		err |= __get_user(regs->pc, &funcptr->text);
 		err |= __get_user(regs->regs[12], &funcptr->GOT);
 	} else
-		regs->pc = (unsigned long)ka->sa.sa_handler;
+		regs->pc = (unsigned long)ksig->ka.sa.sa_handler;
 
 	if (err)
-		goto give_sigsegv;
+		return -EFAULT;
 
 	set_fs(USER_DS);
 
@@ -418,10 +414,6 @@ static int setup_rt_frame(int sig, struc
 		 current->comm, task_pid_nr(current), frame, regs->pc, regs->pr);
 
 	return 0;
-
-give_sigsegv:
-	force_sigsegv(sig, current);
-	return -EFAULT;
 }
 
 static inline void
@@ -455,22 +447,18 @@ handle_syscall_restart(unsigned long sav
  * OK, we're invoking a handler
  */
 static void
-handle_signal(unsigned long sig, struct k_sigaction *ka, siginfo_t *info,
-	      struct pt_regs *regs, unsigned int save_r0)
+handle_signal(struct ksignal *ksig, struct pt_regs *regs, unsigned int save_r0)
 {
 	sigset_t *oldset = sigmask_to_save();
 	int ret;
 
 	/* Set up the stack frame */
-	if (ka->sa.sa_flags & SA_SIGINFO)
-		ret = setup_rt_frame(sig, ka, info, oldset, regs);
+	if (ksig->ka.sa.sa_flags & SA_SIGINFO)
+		ret = setup_rt_frame(ksig, oldset, regs);
 	else
-		ret = setup_frame(sig, ka, oldset, regs);
+		ret = setup_frame(ksig, oldset, regs);
 
-	if (ret)
-		return;
-	signal_delivered(sig, info, ka, regs,
-			test_thread_flag(TIF_SINGLESTEP));
+	signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP));
 }
 
 /*
@@ -484,9 +472,7 @@ handle_signal(unsigned long sig, struct
  */
 static void do_signal(struct pt_regs *regs, unsigned int save_r0)
 {
-	siginfo_t info;
-	int signr;
-	struct k_sigaction ka;
+	struct ksignal ksig;
 
 	/*
 	 * We want the common case to go fast, which
@@ -497,12 +483,11 @@ static void do_signal(struct pt_regs *re
 	if (!user_mode(regs))
 		return;
 
-	signr = get_signal_to_deliver(&info, &ka, regs, NULL);
-	if (signr > 0) {
-		handle_syscall_restart(save_r0, regs, &ka.sa);
+	if (get_signal(&ksig)) {
+		handle_syscall_restart(save_r0, regs, &ksig.ka.sa);
 
 		/* Whee!  Actually deliver the signal.  */
-		handle_signal(signr, &ka, &info, regs, save_r0);
+		handle_signal(&ksig, regs, save_r0);
 		return;
 	}
 
--- a/arch/sh/kernel/signal_64.c
+++ b/arch/sh/kernel/signal_64.c
@@ -41,8 +41,7 @@
 #define DEBUG_SIG 0
 
 static void
-handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
-		struct pt_regs * regs);
+handle_signal(struct ksignal *ksig, struct pt_regs *regs);
 
 static inline void
 handle_syscall_restart(struct pt_regs *regs, struct sigaction *sa)
@@ -82,9 +81,7 @@ handle_syscall_restart(struct pt_regs *r
  */
 static void do_signal(struct pt_regs *regs)
 {
-	siginfo_t info;
-	int signr;
-	struct k_sigaction ka;
+	struct ksignal ksig;
 
 	/*
 	 * We want the common case to go fast, which
@@ -95,12 +92,11 @@ static void do_signal(struct pt_regs *re
 	if (!user_mode(regs))
 		return;
 
-	signr = get_signal_to_deliver(&info, &ka, regs, 0);
-	if (signr > 0) {
-		handle_syscall_restart(regs, &ka.sa);
+	if (get_signal(&ksig)) {
+		handle_syscall_restart(regs, &ksig.ka.sa);
 
 		/* Whee!  Actually deliver the signal.  */
-		handle_signal(signr, &info, &ka, regs);
+		handle_signal(&ksig, regs);
 		return;
 	}
 
@@ -378,17 +374,16 @@ get_sigframe(struct k_sigaction *ka, uns
 void sa_default_restorer(void);		/* See comments below */
 void sa_default_rt_restorer(void);	/* See comments below */
 
-static int setup_frame(int sig, struct k_sigaction *ka,
-		       sigset_t *set, struct pt_regs *regs)
+static int setup_frame(struct ksignal *ksig, sigset_t *set, struct pt_regs *regs)
 {
 	struct sigframe __user *frame;
-	int err = 0;
+	int err = 0, sig = ksig->sig;
 	int signal;
 
-	frame = get_sigframe(ka, regs->regs[REG_SP], sizeof(*frame));
+	frame = get_sigframe(&ksig->ka, regs->regs[REG_SP], sizeof(*frame));
 
 	if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
-		goto give_sigsegv;
+		return -EFAULT;
 
 	signal = current_thread_info()->exec_domain
 		&& current_thread_info()->exec_domain->signal_invmap
@@ -400,7 +395,7 @@ static int setup_frame(int sig, struct k
 
 	/* Give up earlier as i386, in case */
 	if (err)
-		goto give_sigsegv;
+		return -EFAULT;
 
 	if (_NSIG_WORDS > 1) {
 		err |= __copy_to_user(frame->extramask, &set->sig[1],
@@ -408,16 +403,16 @@ static int setup_frame(int sig, struct k
 
 	/* Give up earlier as i386, in case */
 	if (err)
-		goto give_sigsegv;
+		return -EFAULT;
 
 	/* Set up to return from userspace.  If provided, use a stub
 	   already in userspace.  */
-	if (ka->sa.sa_flags & SA_RESTORER) {
+	if (ksig->ka.sa.sa_flags & SA_RESTORER) {
 		/*
 		 * On SH5 all edited pointers are subject to NEFF
 		 */
 		DEREF_REG_PR = neff_sign_extend((unsigned long)
-			ka->sa.sa_restorer | 0x1);
+			ksig->ka->sa.sa_restorer | 0x1);
 	} else {
 		/*
 		 * Different approach on SH5.
@@ -435,7 +430,7 @@ static int setup_frame(int sig, struct k
 
 		if (__copy_to_user(frame->retcode,
 			(void *)((unsigned long)sa_default_restorer & (~1)), 16) != 0)
-			goto give_sigsegv;
+			return -EFAULT;
 
 		/* Cohere the trampoline with the I-cache. */
 		flush_cache_sigtramp(DEREF_REG_PR-1);
@@ -460,7 +455,7 @@ static int setup_frame(int sig, struct k
 	regs->regs[REG_ARG2] = (unsigned long long)(unsigned long)(signed long)&frame->sc;
 	regs->regs[REG_ARG3] = (unsigned long long)(unsigned long)(signed long)&frame->sc;
 
-	regs->pc = neff_sign_extend((unsigned long)ka->sa.sa_handler);
+	regs->pc = neff_sign_extend((unsigned long)ksig->ka.sa.sa_handler);
 
 	set_fs(USER_DS);
 
@@ -471,23 +466,19 @@ static int setup_frame(int sig, struct k
 		 DEREF_REG_PR >> 32, DEREF_REG_PR & 0xffffffff);
 
 	return 0;
-
-give_sigsegv:
-	force_sigsegv(sig, current);
-	return -EFAULT;
 }
 
-static int setup_rt_frame(int sig, struct k_sigaction *ka, siginfo_t *info,
-			  sigset_t *set, struct pt_regs *regs)
+static int setup_rt_frame(struct ksignal *kig, sigset_t *set,
+			  struct pt_regs *regs)
 {
 	struct rt_sigframe __user *frame;
-	int err = 0;
+	int err = 0, sig = ksig->sig;
 	int signal;
 
-	frame = get_sigframe(ka, regs->regs[REG_SP], sizeof(*frame));
+	frame = get_sigframe(&ksig->ka, regs->regs[REG_SP], sizeof(*frame));
 
 	if (!access_ok(VERIFY_WRITE, frame, sizeof(*frame)))
-		goto give_sigsegv;
+		return -EFAULT;
 
 	signal = current_thread_info()->exec_domain
 		&& current_thread_info()->exec_domain->signal_invmap
@@ -497,11 +488,11 @@ static int setup_rt_frame(int sig, struc
 
 	err |= __put_user(&frame->info, &frame->pinfo);
 	err |= __put_user(&frame->uc, &frame->puc);
-	err |= copy_siginfo_to_user(&frame->info, info);
+	err |= copy_siginfo_to_user(&frame->info, &ksig->info);
 
 	/* Give up earlier as i386, in case */
 	if (err)
-		goto give_sigsegv;
+		return -EFAULT;
 
 	/* Create the ucontext.  */
 	err |= __put_user(0, &frame->uc.uc_flags);
@@ -513,16 +504,16 @@ static int setup_rt_frame(int sig, struc
 
 	/* Give up earlier as i386, in case */
 	if (err)
-		goto give_sigsegv;
+		return -EFAULT;
 
 	/* Set up to return from userspace.  If provided, use a stub
 	   already in userspace.  */
-	if (ka->sa.sa_flags & SA_RESTORER) {
+	if (ksig->ka.sa.sa_flags & SA_RESTORER) {
 		/*
 		 * On SH5 all edited pointers are subject to NEFF
 		 */
 		DEREF_REG_PR = neff_sign_extend((unsigned long)
-			ka->sa.sa_restorer | 0x1);
+			ksig->ka.sa.sa_restorer | 0x1);
 	} else {
 		/*
 		 * Different approach on SH5.
@@ -540,7 +531,7 @@ static int setup_rt_frame(int sig, struc
 
 		if (__copy_to_user(frame->retcode,
 			(void *)((unsigned long)sa_default_rt_restorer & (~1)), 16) != 0)
-			goto give_sigsegv;
+			return -EFAULT;
 
 		/* Cohere the trampoline with the I-cache. */
 		flush_icache_range(DEREF_REG_PR-1, DEREF_REG_PR-1+15);
@@ -554,7 +545,7 @@ static int setup_rt_frame(int sig, struc
 	regs->regs[REG_ARG1] = signal; /* Arg for signal handler */
 	regs->regs[REG_ARG2] = (unsigned long long)(unsigned long)(signed long)&frame->info;
 	regs->regs[REG_ARG3] = (unsigned long long)(unsigned long)(signed long)&frame->uc.uc_mcontext;
-	regs->pc = neff_sign_extend((unsigned long)ka->sa.sa_handler);
+	regs->pc = neff_sign_extend((unsigned long)ksig->ka.sa.sa_handler);
 
 	set_fs(USER_DS);
 
@@ -564,33 +555,24 @@ static int setup_rt_frame(int sig, struc
 		 DEREF_REG_PR >> 32, DEREF_REG_PR & 0xffffffff);
 
 	return 0;
-
-give_sigsegv:
-	force_sigsegv(sig, current);
-	return -EFAULT;
 }
 
 /*
  * OK, we're invoking a handler
  */
 static void
-handle_signal(unsigned long sig, siginfo_t *info, struct k_sigaction *ka,
-		struct pt_regs * regs)
+handle_signal(struct ksignal *ksig, struct pt_regs *regs)
 {
 	sigset_t *oldset = sigmask_to_save();
 	int ret;
 
 	/* Set up the stack frame */
-	if (ka->sa.sa_flags & SA_SIGINFO)
-		ret = setup_rt_frame(sig, ka, info, oldset, regs);
+	if (ksig->ka.sa.sa_flags & SA_SIGINFO)
+		ret = setup_rt_frame(ksig, oldset, regs);
 	else
-		ret = setup_frame(sig, ka, oldset, regs);
-
-	if (ret)
-		return;
+		ret = setup_frame(ksig, oldset, regs);
 
-	signal_delivered(sig, info, ka, regs,
-			test_thread_flag(TIF_SINGLESTEP));
+	signal_setup_done(ret, ksig, test_thread_flag(TIF_SINGLESTEP));
 }
 
 asmlinkage void do_notify_resume(struct pt_regs *regs, unsigned long thread_info_flags)


  parent reply	other threads:[~2019-04-27 15:24 UTC|newest]

Thread overview: 205+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-04-27 15:13 [PATCH 3.16 000/202] 3.16.66-rc1 review Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 112/202] cris: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 108/202] arm64: " Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 183/202] net: netem: fix skb length BUG_ON in __skb_to_sgvec Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 055/202] vt: always call notifier with the console lock held Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 117/202] m68k: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 133/202] xtensa: " Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 050/202] ARC: show_regs: lockdep: avoid page allocator Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 043/202] fuse: handle zero sized retrieve correctly Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 124/202] powerpc: Use sigsp() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 088/202] dmaengine: bcm2835: Fix interrupt race on RT Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 049/202] arc: do not export symbols in troubleshoot.c Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 160/202] i2c: cadence: Fix the hold bit setting Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 171/202] KEYS: always initialize keyring_index_key::desc_len Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 031/202] CIFS: Do not hide EINTR after sending network packets Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 078/202] usb: gadget: musb: fix short isoc packets with inventra dma Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 085/202] mm: migrate: don't rely on __PageMovable() of newpage after unlocking it Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 163/202] assoc_array: Fix shortcut creation Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 057/202] char/mwave: fix potential Spectre v1 vulnerability Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 110/202] blackfin: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 131/202] unicore32: " Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 099/202] MIPS: Remove function size check in get_frame_info() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 064/202] iommu/amd: Fix IOMMU page flush when detach device from a domain Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 047/202] Yama: Check for pid death before checking ancestry Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 015/202] ASoC: atom: fix a missing check of snd_pcm_lib_malloc_pages Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 071/202] usb: phy: am335x: fix race condition in _probe Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 035/202] s390/mm: always force a load of the primary ASCE on context switch Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 038/202] staging: rtl8188eu: Add device code for D-Link DWA-121 rev B1 Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 019/202] packet: Do not leak dev refcounts on error exit Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 041/202] net: phy: micrel: ksz9031: reconfigure autoneg after phy autoneg workaround Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 170/202] KEYS: restrict /proc/keys by credentials at open time Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 119/202] mips: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 148/202] x86/kvm/nVMX: read from MSR_IA32_VMX_PROCBASED_CTLS2 only when it is available Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 175/202] mmc: tmio_mmc_core: don't claim spurious interrupts Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 180/202] mm/mmap.c: expand_downwards: don't require the gap if !vm_prev Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 123/202] powerpc: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 122/202] parisc: " Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 172/202] mdio_bus: Fix use-after-free on device_register fails Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 195/202] brcmfmac: screening firmware event packet Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 146/202] vxlan: test dev->flags & IFF_UP before calling netif_rx() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 191/202] perf/core: Fix perf_event_open() vs. execve() race Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 196/202] brcmfmac: fix incorrect event channel deduction Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 190/202] coredump: fix race condition between mmget_not_zero()/get_task_mm() and core dumping Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 121/202] mn10300: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 106/202] libata: Add NOLPM quirk for SAMSUNG MZ7TE512HMHP-000L1 SSD Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 022/202] scsi: isci: initialize shost fully before calling scsi_add_host() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 120/202] mips: Use sigsp() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 167/202] tmpfs: fix link accounting when a tmpfile is linked in Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 194/202] brcmfmac: make brcmf_proto_hdrpull() return struct brcmf_if instance Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 193/202] brcmfmac: consolidate ifp lookup in driver core Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 010/202] usb: cdc-acm: send ZLP for Telit 3G Intel based modems Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 144/202] alpha: fix page fault handling for r16-r18 targets Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 092/202] dmaengine: dmatest: unmap data on a single code-path when xfer done Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 086/202] dmaengine: imx-dma: fix wrong callback invoke Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 132/202] unicore32: Fix build error Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 200/202] binfmt_elf: switch to new creds when switching to new mm Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 126/202] s390: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 105/202] Input: bma150 - register input device after setting private data Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 129/202] tile: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 056/202] vt: invoke notifier on screen size change Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 044/202] fuse: call pipe_buf_release() under pipe lock Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 181/202] mm: enforce min addr even if capable() in expand_downwards() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 192/202] brcmfmac: assure SSID length from firmware is limited Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 138/202] signal: Better detection of synchronous signals Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 102/202] drm/vmwgfx: Fix setting of dma masks Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 134/202] tracehook_signal_handler: Remove sig, info, ka and regs Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 001/202] batman-adv: Avoid WARN on net_device without parent in netns Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 042/202] net: phy: micrel: set soft_reset callback to genphy_soft_reset for KSZ9031 Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 185/202] [media] media: em28xx-dvb - fix em28xx_dvb_resume() to not unregister i2c and dvb Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 007/202] ALSA: usb-audio: Always check descriptor sizes in parser code Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 060/202] can: bcm: check timer values before ktime conversion Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 016/202] ALSA: cs46xx: Potential NULL dereference in probe Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 154/202] x86/a.out: Clear the dump structure initially Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 033/202] omap2fb: Fix stack memory disclosure Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 198/202] brcmfmac: add subtype check for event handling in data path Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 098/202] s390/qeth: conclude all event processing before offlining a card Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 080/202] l2tp: copy 4 more bytes to linear part if necessary Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 199/202] binfmt_elf: Fix missing SIGKILL for empty PIE Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 097/202] s390/qeth: cancel close_dev work before removing a card Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 083/202] mm, oom: fix use-after-free in oom_kill_process Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 076/202] CIFS: Do not consider -ENODATA as stat failure for reads Ben Hutchings
2019-04-27 15:13 ` Ben Hutchings [this message]
2019-04-27 15:13 ` [PATCH 3.16 137/202] signal: Always notice exiting tasks Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 145/202] perf/x86: Add check_period PMU callback Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 111/202] c6x: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 118/202] microblaze: " Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 077/202] ARM: iop32x/n2100: fix PCI IRQ mapping Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 084/202] mm: hwpoison: use do_send_sig_info() instead of force_sig() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 151/202] net/packet: Set __GFP_NOWARN upon allocation in alloc_pg_vec Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 182/202] netlabel: fix out-of-bounds memory accesses Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 188/202] Bluetooth: Check L2CAP option sizes returned from l2cap_get_conf_opt Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 074/202] MIPS: OCTEON: don't set octeon_dma_bar_type if PCI is disabled Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 052/202] net: bridge: Fix ethernet header pointer before check skb forwardable Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 159/202] dm thin: fix bug where bio that overwrites thin block ignores FUA Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 068/202] IB/ipoib: Fix for use-after-free in ipoib_cm_tx_start Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 063/202] drm/modes: Prevent division by zero htotal Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 030/202] i2c: dev: prevent adapter retries and timeout being set as minus value Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 067/202] KVM: x86: Fix single-step debugging Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 073/202] scsi: bnx2fc: Fix error handling in probe() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 011/202] USB: storage: don't insert sane sense for SPC3+ when bad sense specified Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 139/202] sit: check if IPv6 enabled before calling ip6_err_gen_icmpv6_unreach() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 161/202] netfilter: nf_tables: fix flush after rule deletion in the same batch Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 091/202] perf/core: Don't WARN() for impossible ring-buffer sizes Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 014/202] ASoC: tlv320aic32x4: Kernel OOPS while entering DAPM standby mode Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 087/202] dmaengine: bcm2835: add additional defines for DMA-registers Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 013/202] USB: Add USB_QUIRK_DELAY_CTRL_MSG quirk for Corsair K70 RGB Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 036/202] s390/smp: fix CPU hotplug deadlock with CPU rescan Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 054/202] tty/n_hdlc: fix __might_sleep warning Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 177/202] tmpfs: fix uninitialized return value in shmem_link Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 197/202] brcmfmac: revise handling events in receive path Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 179/202] net: nfc: Fix NULL dereference on nfc_llcp_build_tlv fails Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 095/202] perf test: Fix failure of 'evsel-tp-sched' test on s390 Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 166/202] net: stmmac: Fix a race in EEE enable callback Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 045/202] fuse: decrement NR_WRITEBACK_TEMP on the right page Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 113/202] frv: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 096/202] s390/qeth: fix use-after-free in error path Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 094/202] perf tests evsel-tp-sched: Fix bitwise operator Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 008/202] ALSA: usb-audio: Fix an out-of-bound read in create_composite_quirks Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 082/202] skge: potential memory corruption in skge_get_regs() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 116/202] m32r: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 065/202] net/mlx4_core: Add masking for a few queries on HCA caps Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 162/202] KEYS: allow reaching the keys quotas exactly Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 066/202] debugfs: fix debugfs_rename parameter checking Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 135/202] Clean up signal_delivered() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 169/202] KEYS: user: Align the payload buffer Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 101/202] drm/vmwgfx: Return error code from vmw_execbuf_copy_fence_user Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 029/202] Disable MSI also when pcie-octeon.pcie_disable on Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 093/202] dmaengine: dmatest: Abort test in case of mapping error Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 109/202] avr32: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 178/202] net: phy: Micrel KSZ8061: link failure after cable connect Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 187/202] Bluetooth: Verify that l2cap_get_conf_opt provides large enough buffer Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 046/202] media: v4l: ioctl: Validate num_planes for debug messages Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 026/202] rbd: don't return 0 on unmap if RBD_DEV_FLAG_REMOVING is set Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 070/202] usb: gadget: udc: net2272: Fix bitwise and boolean operations Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 136/202] Rip out get_signal_to_deliver() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 174/202] mmc: spi: Fix card detection during probe Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 048/202] USB: serial: pl2303: add new PID to support PL2303TB Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 140/202] ALSA: usb-audio: Fix implicit fb endpoint setup by quirk Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 152/202] team: avoid complex list operations in team_nl_cmd_options_set() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 153/202] perf/core: Fix impossible ring-buffer sizes warning Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 023/202] Drivers: hv: vmbus: Check for ring when getting debug info Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 034/202] s390/early: improve machine detection Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 075/202] CIFS: Do not count -ENODATA as failure for query directory Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 061/202] ipmi: msghandler: Fix potential Spectre v1 vulnerabilities Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 189/202] vfio/type1: Limit DMA mappings per container Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 130/202] um: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 025/202] drm/fb-helper: Ignore the value of fb_var_screeninfo.pixclock Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 032/202] cifs: Fix potential OOB access of lock element array Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 107/202] arc: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 079/202] fs/dcache: Fix incorrect nr_dentry_unused accounting in shrink_dcache_sb() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 039/202] net/phy: micrel: Add workaround for bad autoneg Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 184/202] ipc/shm: Fix pid freeing Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 127/202] score: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 069/202] kallsyms: Handle too long symbols in kallsyms.c Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 155/202] signal: Restore the stop PTRACE_EVENT_EXIT Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 114/202] hexagon: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 168/202] ARC: U-boot: check arguments paranoidly Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 027/202] ARM: dts: kirkwood: Fix polarity of GPIO fan lines Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 143/202] vsock: cope with memory allocation failure at socket creation time Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 005/202] mfd: tps6586x: Handle interrupts on suspend Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 115/202] ia64: Use get_signal() signal_setup_done() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 165/202] ceph: avoid repeatedly adding inode to mdsc->snap_flush_list Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 158/202] netfilter: nft_compat: use-after-free when deleting targets Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 125/202] powerpc/signal: Properly handle return value from uprobe_deny_signal() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 100/202] net: dsa: slave: Don't propagate flag changes on down slave interfaces Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 018/202] packet: validate address length if non-zero Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 089/202] dmaengine: bcm2835: Fix abort of transactions Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 157/202] netfilter: nf_tables: nft_compat: fix refcount leak on xt module Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 003/202] ACPI: power: Skip duplicate power resource references in _PRx Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 176/202] x86/uaccess: Don't leak the AC flag into __put_user() value evaluation Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 059/202] can: dev: __can_get_echo_skb(): fix bogous check for non-existing skb by removing it Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 156/202] netfilter: nft_compat: fix crash when related match/target module is removed Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 202/202] tty: mark Siemens R3964 line discipline as BROKEN Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 009/202] USB: serial: simple: add Motorola Tetra TPG2200 device id Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 024/202] drm/fb-helper: Partially bring back workaround for bugs of SDL 1.2 Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 040/202] net/phy: micrel: configure intterupts after autoneg workaround Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 037/202] x86/kaslr: Fix incorrect i8254 outb() parameters Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 103/202] ALSA: compress: Fix stop handling on compressed capture streams Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 104/202] mtd: rawnand: gpmi: fix MX28 bus master lockup problem Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 201/202] apparmor: provide userspace flag indicating binfmt_elf_mmap change Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 141/202] Input: elantech - force needed quirks on Fujitsu H760 Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 028/202] crypto: authenc - fix parsing key with misaligned rta_len Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 004/202] mfd: ab8500-core: Return zero in get_register_interruptible() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 147/202] net: fix IPv6 prefix route residue Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 002/202] batman-adv: Force mac header to start of data on xmit Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 058/202] tty: Handle problem if line discipline does not have receive_buf Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 006/202] ALSA: usb-audio: Avoid access before bLength check in build_audio_procunit() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 164/202] scsi: libsas: Fix rphy phy_identifier for PHYs with end devices attached Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 012/202] USB: storage: add quirk for SMI SM3350 Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 062/202] ARM: pxa: ssp: unneeded to free devm_ allocated data Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 021/202] scsi: sd: Fix cache_type_store() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 017/202] packet: validate address length Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 150/202] net/packet: fix 4gb buffer limit due to overflow check Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 142/202] Input: elantech - enable 3rd button support on Fujitsu CELSIUS H780 Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 051/202] ARC: mm: do_page_fault fixes #1: relinquish mmap_sem if signal arrives while handle_mm_fault Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 072/202] s390/dasd: fix using offset into zero size array error Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 149/202] batman-adv: fix uninit-value in batadv_interface_tx() Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 186/202] media: em28xx: Fix use-after-free when disconnecting Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 090/202] perf/x86/intel/uncore: Add Node ID mask Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 081/202] mac80211: ensure that mgmt tx skbs have tailroom for encryption Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 053/202] uart: Fix crash in uart_write and uart_put_char Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 020/202] sd: Clear PS bit before Mode Select Ben Hutchings
2019-04-27 15:13 ` [PATCH 3.16 173/202] net/x25: fix a race in x25_bind() Ben Hutchings
2019-04-27 18:41 ` [PATCH 3.16 000/202] 3.16.66-rc1 review Guenter Roeck
2019-04-28 15:45   ` 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.1556377989.986158014@decadent.org.uk \
    --to=ben@decadent.org.uk \
    --cc=akpm@linux-foundation.org \
    --cc=kda@linux-powerpc.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=richard@nod.at \
    --cc=stable@vger.kernel.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