1
linux/arch/arm
Frederic Riss 2003b7af25 ARM: 5715/1: Make kprobes unregistration SMP safe
ARM kprobes use an illegal instruction to trigger kprobes. In the
current implementation, there's a race between the unregistration of a
kprobe and the illegal instruction exception handler if they run at the
same time on different cores.

When reading the value of the undefined instruction, the exception
handler might get the original legal instruction as just patched
concurrently by arch_disarm_kprobe(). When this happen the kprobe
handler won't run, and thus the exception handler will oops because it
believe it just hit an undefined instruction in kernel space.

The following patch synchronizes the code patching in the kprobes
unregistration using stop_machine and thus avoids the above race.

Signed-off-by: Frederic RISS <frederic.riss@gmail.com>
Acked-by: Nicolas Pitre <nico@fluxnic.net>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2009-09-21 16:39:12 +01:00
..
boot Nicolas Pitre has a new email address 2009-09-15 09:37:12 -07:00
common ARM: 5696/1: Include device.h in VIC driver 2009-09-15 22:06:03 +01:00
configs Merge branch 'master' into devel 2009-09-12 12:04:37 +01:00
include/asm Merge branch 'for-rmk' of git://linux-arm.org/linux-2.6 2009-09-19 13:47:57 +01:00
kernel ARM: 5715/1: Make kprobes unregistration SMP safe 2009-09-21 16:39:12 +01:00
lib Merge branch 'for-rmk' of git://linux-arm.org/linux-2.6 2009-09-19 13:47:57 +01:00
mach-aaec2000
mach-at91 Merge branch 'devel-stable' into devel 2009-09-12 12:02:26 +01:00
mach-bcmring ARM: 5642/1: bcmring: add Makefile/Kconfig/Makefile.boot in mach-bcmring 2009-08-15 16:01:50 +01:00
mach-clps711x
mach-davinci ARM: includecheck fix: board-sffsdr.c 2009-07-25 17:07:02 +01:00
mach-ebsa110
mach-ep93xx Merge branch 'master' into devel 2009-09-12 12:04:37 +01:00
mach-footbridge
mach-gemini
mach-h720x
mach-integrator Merge branch 'devel-stable' into devel 2009-09-12 12:02:26 +01:00
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next-2.6 2009-09-14 10:37:28 -07:00
mach-ixp23xx
mach-ixp2000
mach-kirkwood Merge branch 'master' into devel 2009-09-12 12:04:37 +01:00
mach-ks8695 ARM: 5637/1: [KS8695] Don't reference CLOCK_TICK_RATE in drivers 2009-08-05 22:06:56 +01:00
mach-l7200
mach-lh7a40x
mach-loki
mach-mmp
mach-msm
mach-mv78xx0
mach-mx1 ARM: mxc: Fix i2c_board_info definitions 2009-08-14 12:40:37 +02:00
mach-mx2 mx21ads: Fix framebuffer platform data 2009-08-14 12:41:16 +02:00
mach-mx3 Merge branch 'master' into devel 2009-09-12 12:04:37 +01:00
mach-mx25 Freescale i.MX25 PDK (3ds) board support 2009-08-14 12:40:43 +02:00
mach-mxc91231 MXC: add iomux pins configuration support for MXC91231 2009-08-14 12:40:47 +02:00
mach-netx netx: Use get_irqnr_preamble to initialize base register 2009-08-13 20:34:36 +02:00
mach-nomadik [ARM] 5587/1: nomadik: add l2cc 2009-07-02 21:20:47 +01:00
mach-ns9xxx
mach-omap1 ARM: includecheck fix: mach-omap1/mcbsp.c 2009-07-25 17:08:22 +01:00
mach-omap2 Merge branch 'devel' of master.kernel.org:/home/rmk/linux-2.6-arm 2009-09-14 17:48:14 -07:00
mach-orion5x [ARM] orion5x: Add LaCie NAS 2Big Network support 2009-09-08 14:10:35 -04:00
mach-pnx4008
mach-pxa ARM: spitz: fix touchscreen max presure 2009-09-19 12:14:06 +01:00
mach-realview Merge branch 'devel-stable' into devel 2009-09-12 12:02:26 +01:00
mach-rpc
mach-s3c24a0/include/mach ARM: S3C: move s3c_device_nand from plat-s3c24xx to plat-s3c 2009-07-31 00:10:24 +01:00
mach-s3c2400
mach-s3c2410 ARM: S3C: Add missing selection of S3C_DEV_NAND in machine Kconfigs. 2009-09-17 10:12:28 +01:00
mach-s3c2412 ARM: S3C: Add missing selection of S3C_DEV_NAND in machine Kconfigs. 2009-09-17 10:12:28 +01:00
mach-s3c2440 ARM: S3C: Add missing selection of S3C_DEV_NAND in machine Kconfigs. 2009-09-17 10:12:28 +01:00
mach-s3c2442
mach-s3c2443
mach-s3c6400 ARM: S3C: Add missing selection of S3C_DEV_NAND in machine Kconfigs. 2009-09-17 10:12:28 +01:00
mach-s3c6410 ARM: S3C: Add missing selection of S3C_DEV_NAND in machine Kconfigs. 2009-09-17 10:12:28 +01:00
mach-s5pc100 ARM: S5PC100: Board and configuration file 2009-08-16 23:40:39 +01:00
mach-sa1100 ARM: 5712/1: SA1100: initialise spinlock in DMA code 2009-09-20 12:55:49 +01:00
mach-shark
mach-stmp37xx
mach-stmp378x
mach-u300 Merge branch 'master' into devel 2009-09-12 12:04:37 +01:00
mach-versatile Merge branch 'devel-stable' into devel 2009-09-12 12:02:26 +01:00
mach-w90x900 Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/dtor/input 2009-09-14 17:56:51 -07:00
mm ARM: Add support for checking access permissions on prefetch aborts 2009-09-20 16:53:40 +01:00
nwfpe
oprofile
plat-iop Nicolas Pitre has a new email address 2009-09-15 09:37:12 -07:00
plat-mxc mx31: define various GPIOs used on mx31moboard 2009-08-14 12:41:09 +02:00
plat-omap Nicolas Pitre has a new email address 2009-09-15 09:37:12 -07:00
plat-orion [ARM] Kirkwood: __init requires linux/init.h 2009-08-24 11:55:59 -04:00
plat-pxa [ARM] pxa: use kzalloc() in pxa_init_gpio_chip() 2009-07-03 14:17:51 +08:00
plat-s3c ARM: s3c: fix check of index into s3c_gpios[] 2009-09-19 12:14:06 +01:00
plat-s3c24xx Merge branch 'master' into devel 2009-09-12 12:04:37 +01:00
plat-s3c64xx Merge branch 'next-s3c-fixes' of git://aeryn.fluff.org.uk/bjdooks/linux 2009-09-18 20:55:56 +01:00
plat-s5pc1xx ARM: S5PC100: Kconfigs and Makefiles 2009-08-16 23:35:19 +01:00
plat-stmp3xxx ARM: STMP3xxx: deallocation with negative index of descriptors[] 2009-09-19 12:14:05 +01:00
tools [ARM] Update mach-types 2009-09-18 21:42:01 +01:00
vfp Thumb-2: Implement the unified VFP support 2009-07-24 12:32:57 +01:00
Kconfig Merge branch 'devel-stable' into devel 2009-09-12 12:02:26 +01:00
Kconfig-nommu
Kconfig.debug Thumb-2: Add Thumb-2 support to the build files 2009-07-24 12:33:02 +01:00
Makefile Merge branch 'devel-stable' into devel 2009-09-12 12:02:26 +01:00