Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

MN10300: Change the fault handler to check in_atomic() not in_interrupt()

Change the MN10300 fault handler to make it check in_atomic() rather than
in_interrupt() as commit 6edaf68a87d17570790fd55f0c451a29ec1d6703 did for other
architectures:

Author: Peter Zijlstra <a.p.zijlstra@chello.nl>
Date: Wed Dec 6 20:32:18 2006 -0800

[PATCH] mm: arch do_page_fault() vs in_atomic()

In light of the recent pagefault and filemap_copy_from_user work I've
gone through all the arch pagefault handlers to make sure the
inc_preempt_count() 'feature' works as expected.

Several sections of code (including the new filemap_copy_from_user)
rely on the fact that faults do not take locks under increased preempt
count.

Signed-off-by: David Howells <dhowells@redhat.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>

authored by

David Howells and committed by
Linus Torvalds
d1c6d2e5 6d242a26

+1 -1
+1 -1
arch/mn10300/mm/fault.c
··· 174 174 * If we're in an interrupt or have no user 175 175 * context, we must not take the fault.. 176 176 */ 177 - if (in_interrupt() || !mm) 177 + if (in_atomic() || !mm) 178 178 goto no_context; 179 179 180 180 down_read(&mm->mmap_sem);