linux/arch
Andi Kleen d5a2601734 [PATCH] i386/x86-64: Add user_mode checks to profile_pc for oprofile
Fixes a obscure user space triggerable crash during oprofiling.

Oprofile calls profile_pc from NMIs even when user_mode(regs) is not true and
the program counter is inside the kernel lock section. This opens
a race - when a user program jumps to a kernel lock address and
a NMI happens before the illegal page fault exception is raised
and the program has a unmapped esp or ebp then the kernel could
oops. NMIs have a higher priority than exceptions so that could
happen.

Add user_mode checks to i386/x86-64 profile_pc to prevent that.

Cc: John Levon <levon@movementarian.org>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
2006-07-28 19:28:00 -07:00
..
alpha [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
arm [ARM] arch/arm/kernel/bios32.c: no need to set isa_bridge 2006-07-13 16:14:26 +01:00
arm26 [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
cris [PATCH] pcf8563: remove MOD_INC_USE_COUNT, MOD_DEC_USE_COUNT 2006-07-10 13:24:22 -07:00
frv [PATCH] FRV: Introduce asm-offsets for FRV arch 2006-07-10 13:24:22 -07:00
h8300 [PATCH] irq-flags: H8300: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
i386 [PATCH] i386/x86-64: Add user_mode checks to profile_pc for oprofile 2006-07-28 19:28:00 -07:00
ia64 [PATCH] make valid_mmap_phys_addr_range() take a pfn 2006-07-10 13:24:25 -07:00
m32r [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
m68k [PATCH] irq-flags: M68K: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
m68knommu [PATCH] irq-flags: M68KNOMMU: Use the new IRQF_ constants 2006-07-02 13:58:47 -07:00
mips [MIPS] sparsemem: fix crash in show_mem 2006-07-13 21:26:22 +01:00
parisc [PATCH] vt: Remove VT-specific declarations and definitions from tty.h 2006-07-10 13:24:16 -07:00
powerpc [PATCH] powermac: Combined fixes for backlight code 2006-07-10 13:24:20 -07:00
ppc [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
s390 [S390] update default configuration 2006-07-27 14:04:57 +02:00
sh [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
sh64 [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00
sparc [SPARC]: Defer clock_probe to fs_initcall() 2006-07-27 22:08:01 -07:00
sparc64 [SPARC64]: Explicitly print return PC when the kernel fault PC is bogus. 2006-07-24 22:33:58 -07:00
um [PATCH] UML - fix utsname build breakage 2006-07-15 14:42:24 -07:00
v850 [PATCH] irq-flags: V850: Use the new IRQF_ constants 2006-07-02 13:58:48 -07:00
x86_64 [PATCH] i386/x86-64: Add user_mode checks to profile_pc for oprofile 2006-07-28 19:28:00 -07:00
xtensa [PATCH] tty: Remove include of screen_info.h from tty.h 2006-07-10 13:24:16 -07:00