From: Mark Brown Date: Fri, 21 Nov 2014 18:53:31 +0000 (+0000) Subject: Merge branch 'linux-linaro-lsk' into linux-linaro-lsk-android X-Git-Tag: firefly_0821_release~3680^2~47 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=5d0676ad297dc9ac5f8a39070ddfb2245d3c7301;p=firefly-linux-kernel-4.4.55.git Merge branch 'linux-linaro-lsk' into linux-linaro-lsk-android --- 5d0676ad297dc9ac5f8a39070ddfb2245d3c7301 diff --cc arch/arm/mm/fault.c index 56059a5be9a8,54fcddafec15..9820ad4b80c0 --- a/arch/arm/mm/fault.c +++ b/arch/arm/mm/fault.c @@@ -276,12 -274,17 +274,17 @@@ do_page_fault(unsigned long addr, unsig local_irq_enable(); /* - * If we're in an interrupt or have no user + * If we're in an interrupt, or have no irqs, or have no user * context, we must not take the fault.. */ - if (in_atomic() || !mm) + if (in_atomic() || irqs_disabled() || !mm) goto no_context; + if (user_mode(regs)) + flags |= FAULT_FLAG_USER; + if (fsr & FSR_WRITE) + flags |= FAULT_FLAG_WRITE; + /* * As per x86, we may deadlock here. However, since the kernel only * validly references user space from well defined areas of the code,