kernel_optimize_test/arch
Imre Deak 1d2127123d ARM: 5742/1: ARM: add debug check for invalid kernel page faults
According to the following in arch/arm/mm/fault.c page faults from
kernel mode are invalid if mmap_sem is already held and there is
no exception handler defined for the faulting instruction:

/*
 * As per x86, we may deadlock here.  However, since the kernel only
 * validly references user space from well defined areas of the code,
 * we can bug out early if this is from code which shouldn't.
 */
if (!down_read_trylock(&mm->mmap_sem)) {
	if (!user_mode(regs) && !search_exception_tables(regs->ARM_pc))
		goto no_context;

Since mmap_sem can be held at arbitrary times by another thread this
also means that any page faults from kernel mode are invalid if no
exception handler is defined for them, regardless whether mmap_sem is
held at the time of fault.

To easier detect code that can trigger the above error, add a check
also for the case where mmap_sem is acquired. As this has an overhead
make it a VM debug check.

Signed-off-by: Imre Deak <imre.deak@nokia.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-10-05 17:55:55 +01:00
..
alpha alpha: Fix duplicate <asm/thread_info.h> include 2009-09-27 14:46:05 -07:00
arm ARM: 5742/1: ARM: add debug check for invalid kernel page faults 2009-10-05 17:55:55 +01:00
avr32 Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next 2009-09-23 15:37:02 -07:00
blackfin const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
cris const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
frv FRV: Flash mappings for the MB93090-MB00 motherboard 2009-09-24 17:18:38 -07:00
h8300 h8300: Cleanup linker script using new linker script macros. 2009-09-24 17:16:22 -07:00
ia64 const: mark struct vm_struct_operations 2009-09-27 11:39:25 -07:00
m32r m32r: Fix IPI function calls for SMP 2009-10-04 12:02:37 +09:00
m68k revert "m68k: convert to asm-generic/hardirq.h" 2009-10-01 16:11:11 -07:00
m68knommu headers: utsname.h redux 2009-09-23 18:13:10 -07:00
microblaze Merge branch 'for-linus' of git://git.monstr.eu/linux-2.6-microblaze 2009-09-24 09:01:44 -07:00
mips MIPS: Avoid spurious make includecheck message 2009-09-30 21:47:02 +02:00
mn10300 mn10300: fix kernel build failures when using gcc-4.x 2009-10-01 16:11:12 -07:00
parisc parisc: Remove useless altinstructions code copied from x86. 2009-09-24 17:16:21 -07:00
powerpc const: constify remaining file_operations 2009-10-01 16:11:11 -07:00
s390 sysctl: remove "struct file *" argument of ->proc_handler 2009-09-24 07:21:04 -07:00
score Merge git://git.kernel.org/pub/scm/linux/kernel/git/sam/kbuild-next 2009-09-23 15:37:02 -07:00
sh sh: Add support DMA Engine to SH7780 2009-09-25 12:19:33 +09:00
sparc sparc64: implement page mapping percpu first chunk allocator 2009-09-29 09:17:57 +09:00
um um: Clean up linker script using standard macros. 2009-09-24 17:16:22 -07:00
x86 x86: fix csum_ipv6_magic asm memory clobber 2009-10-01 16:11:12 -07:00
xtensa xtensa: Cleanup linker script using new linker script macros. 2009-09-24 17:16:21 -07:00
.gitignore
Kconfig