[PATCH v2] x86/pkeys: Return correctly on a pkey error

From: Aneesh Kumar K.V
Date: Thu Feb 27 2020 - 07:58:28 EST


This was found by code review

Fixes: 9db812dbb29d ("signal/x86: Call force_sig_pkuerr from __bad_area_nosemaphore")
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@xxxxxxxxxxxxx>
---
Changes from V1:
* update commit message

arch/x86/mm/fault.c | 4 +++-
1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c
index fa4ea09593ab..f80a7ad010dc 100644
--- a/arch/x86/mm/fault.c
+++ b/arch/x86/mm/fault.c
@@ -899,8 +899,10 @@ __bad_area_nosemaphore(struct pt_regs *regs, unsigned long error_code,

set_signal_archinfo(address, error_code);

- if (si_code == SEGV_PKUERR)
+ if (si_code == SEGV_PKUERR) {
force_sig_pkuerr((void __user *)address, pkey);
+ return;
+ }

force_sig_fault(SIGSEGV, si_code, (void __user *)address);

--
2.24.1