Message ID | YdS9YjUBSd6JPyu4@mx3210.localdomain (mailing list archive) |
---|---|
State | Accepted, archived |
Headers | show |
Series | parisc: Don't call faulthandler_disabled() in do_page_fault() | expand |
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)
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(). faulthandler_disabled() Signed-off-by: John David Anglin <dave.anglin@bell.net> ---