aboutsummaryrefslogtreecommitdiffstats
path: root/arch/parisc/mm
diff options
context:
space:
mode:
authorJohn David Anglin <dave.anglin@bell.net>2022-01-04 21:34:26 +0000
committerHelge Deller <deller@gmx.de>2022-01-07 01:29:21 +0100
commit9d90a90855ceb9ce0fb9b46b0591ac211e4b4612 (patch)
tree23d97fd86a48f1c7d7e0fc5290177c27ecaad603 /arch/parisc/mm
parentparisc: Switch user access functions to signal errors in r29 instead of r8 (diff)
downloadlinux-dev-9d90a90855ceb9ce0fb9b46b0591ac211e4b4612.tar.xz
linux-dev-9d90a90855ceb9ce0fb9b46b0591ac211e4b4612.zip
parisc: Don't call faulthandler_disabled() in do_page_fault()
It is dangerous to call faulthandler_disabled() when user_mode(regs) is true. The task pagefault_disabled counter is racy and it is not updated atomically on parisc. As a result, calling faulthandler_disabled() may cause erroneous termination. We now handle execption fixups and termination when user_mode(regs) is false in handle_interruption(). Thus, we can just remove the faulthandler_disabled() check from do_page_fault(). Signed-off-by: John David Anglin <dave.anglin@bell.net> Signed-off-by: Helge Deller <deller@gmx.de>
Diffstat (limited to 'arch/parisc/mm')
-rw-r--r--arch/parisc/mm/fault.c3
1 files changed, 0 insertions, 3 deletions
diff --git a/arch/parisc/mm/fault.c b/arch/parisc/mm/fault.c
index 01fd2a32acc6..499e2e8f7f34 100644
--- a/arch/parisc/mm/fault.c
+++ b/arch/parisc/mm/fault.c
@@ -267,9 +267,6 @@ void do_page_fault(struct pt_regs *regs, unsigned long code,
vm_fault_t fault = 0;
unsigned int flags;
- if (faulthandler_disabled())
- goto no_context;
-
tsk = current;
mm = tsk->mm;
if (!mm)