diff --git a/arch/x86/mm/fault.c b/arch/x86/mm/fault.c index 3ffed003f281..013910b7b93f 100644 --- a/arch/x86/mm/fault.c +++ b/arch/x86/mm/fault.c @@ -1380,8 +1380,11 @@ void do_user_addr_fault(struct pt_regs *regs, */ fault = handle_mm_fault(vma, address, flags, regs); - /* Quick path to respond to signals */ if (fault_signal_pending(fault, regs)) { + /* + * Quick path to respond to signals. The core mm code + * has unlocked the mm for us if we get here. + */ if (!user_mode(regs)) no_context(regs, error_code, address, SIGBUS, BUS_ADRERR);