All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] signal/x86: Don't send SIGSEGV twice on SEGV_PKUERR
@ 2021-06-01  8:52 Jiashuo Liang
  2021-06-02 18:42 ` Eric W. Biederman
                   ` (2 more replies)
  0 siblings, 3 replies; 9+ messages in thread
From: Jiashuo Liang @ 2021-06-01  8:52 UTC (permalink / raw)
  To: Dave Hansen, Andy Lutomirski, Peter Zijlstra, Thomas Gleixner,
	Ingo Molnar, Borislav Petkov, x86, H. Peter Anvin,
	Eric W. Biederman
  Cc: linux-kernel, Jiashuo Liang

Before this patch, the __bad_area_nosemaphore function calls both
force_sig_pkuerr and force_sig_fault when handling SEGV_PKUERR. This does
not cause problems because the second signal is filtered by the
legacy_queue check in __send_signal. But it causes the kernel to do
unnecessary work.

This patch should fix it.

Fixes: 9db812dbb29d ("signal/x86: Call force_sig_pkuerr from __bad_area_nosemaphore")
Suggested-by: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Jiashuo Liang <liangjs@pku.edu.cn>
---
 arch/x86/mm/fault.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index 1c548ad00752..6bda7f67d737 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -836,8 +836,8 @@ __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code,
 
 	if (si_code == SEGV_PKUERR)
 		force_sig_pkuerr((void __user *)address, pkey);
-
-	force_sig_fault(SIGSEGV, si_code, (void __user *)address);
+	else
+		force_sig_fault(SIGSEGV, si_code, (void __user *)address);
 
 	local_irq_disable();
 }
-- 
2.31.1


^ permalink raw reply related	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2021-06-04 14:54 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2021-06-01  8:52 [PATCH] signal/x86: Don't send SIGSEGV twice on SEGV_PKUERR Jiashuo Liang
2021-06-02 18:42 ` Eric W. Biederman
2021-06-02 19:02   ` Borislav Petkov
2021-06-03 18:37 ` Borislav Petkov
2021-06-03 21:31   ` Eric W. Biederman
2021-06-04 13:06     ` Borislav Petkov
2021-06-04 14:33       ` Eric W. Biederman
2021-06-04 14:54         ` Borislav Petkov
2021-06-04 13:26 ` [tip: x86/urgent] x86/fault: " tip-bot2 for Jiashuo Liang

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.