linux/arch/arm
Jon Medhurst 3cca6c2435 ARM: kprobes: Don't trigger probes on conditional instructions when condition is false
This patch changes the behavior of kprobes on ARM so that:

    Kprobes on conditional instructions don't trigger when the
    condition is false. For conditional branches, this means that
    they don't trigger in the branch not taken case.

Rationale:

When probes are placed onto conditionally executed instructions in a
Thumb IT block, they may not fire if the condition is not met. This
is because we use invalid instructions for breakpoints and "it is
IMPLEMENTATION DEFINED whether the instruction executes as a NOP or
causes an Undefined Instruction exception". Therefore, for consistency,
we will ignore all probes on any conditional instructions when the
condition is false. Alternative solutions seem to be too complex to
implement or inconsistent.

This issue was discussed on linux.arm.kernel in the thread titled
"[RFC] kprobes with thumb2 conditional code" See
http://comments.gmane.org/gmane.linux.linaro.devel/2985

Signed-off-by: Jon Medhurst <tixy@yxit.co.uk>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
2011-07-13 17:32:42 +00:00
..
boot ARM: 6961/1: zImage: Add build-time check for correctly-sized proc_type entries 2011-06-21 11:33:20 +01:00
common ARM: dmabounce: fix map_single() error return value 2011-07-03 23:24:21 +01:00
configs rtc: fix build warnings in defconfigs 2011-06-15 20:04:02 -07:00
include/asm ARM: kprobes: Split out internal parts of kprobes.h 2011-07-13 17:32:40 +00:00
kernel ARM: kprobes: Don't trigger probes on conditional instructions when condition is false 2011-07-13 17:32:42 +00:00
lib ARM: 6945/1: Add unwinding support for division functions 2011-05-27 22:56:53 +01:00
mach-at91 AT91: Change nand buswidth logic to match hardware default configuration 2011-07-04 23:22:25 +02:00
mach-bcmring
mach-clps711x
mach-cns3xxx
mach-davinci davinci: make PCM platform devices static 2011-06-08 14:41:37 +05:30
mach-dove
mach-ebsa110
mach-ep93xx ARM: 6966/1: ep93xx: fix inverted RTS/DTR signals on uart1 2011-07-06 20:46:36 +01:00
mach-exynos4 ARM: EXYNOS4: Set appropriate I2C device variant 2011-07-06 16:04:09 +09:00
mach-footbridge ARM: footbridge: fix clock event support 2011-06-11 00:46:17 +01:00
mach-gemini Merge git://git.infradead.org/mtd-2.6 2011-05-27 20:06:53 -07:00
mach-h720x ARM: 6962/1: mach-h720x: fix build error 2011-06-17 11:25:03 +01:00
mach-imx
mach-integrator
mach-iop13xx
mach-iop32x
mach-iop33x
mach-ixp4xx Merge git://git.infradead.org/mtd-2.6 2011-05-27 20:06:53 -07:00
mach-ixp23xx
mach-ixp2000
mach-kirkwood
mach-ks8695
mach-l7200/include/mach
mach-loki
mach-lpc32xx
mach-mmp
mach-msm msm: timer: Fix DGT rate on 8960 and 8660 2011-06-20 16:30:07 -07:00
mach-mv78xx0
mach-mx5
mach-mxs arm: mxs: include asm/processor.h for cpu_relax() 2011-06-06 09:50:04 +02:00
mach-netx ARM: 6827/1: mach-netx: delete hardcoded periphid 2011-05-26 10:33:34 +01:00
mach-nomadik gpio: move Nomadik GPIO driver to drivers/gpio 2011-05-26 17:30:03 -06:00
mach-nuc93x
mach-omap1 omap: drop __initdata tags from static struct platform_device declarations 2011-07-04 03:56:15 -07:00
mach-omap2 omap: drop __initdata tags from static struct platform_device declarations 2011-07-04 03:56:15 -07:00
mach-orion5x
mach-pnx4008
mach-pxa gpio: include linux/gpio.h where needed 2011-06-16 08:40:44 -06:00
mach-realview
mach-rpc
mach-s3c24a0/include/mach
mach-s3c64xx ARM: SAMSUNG: Add tx_st_done variable 2011-07-06 15:03:08 +09:00
mach-s3c2400
mach-s3c2410 ARM: S3C2410: remove the now empty mach-s3c2410/irq.c 2011-06-03 18:36:53 -07:00
mach-s3c2412
mach-s3c2416
mach-s3c2440 ARM: S3C2440: fix section mismatch on mini2440 2011-07-08 18:16:56 +09:00
mach-s3c2443
mach-s5p64x0 ARM: SAMSUNG: Add tx_st_done variable 2011-07-06 15:03:08 +09:00
mach-s5pc100 Merge branch 'for-spi' into s5p-fixes-for-linus 2011-07-06 15:46:41 +09:00
mach-s5pv210 ARM: SAMSUNG: Add tx_st_done variable 2011-07-06 15:03:08 +09:00
mach-sa1100
mach-shark
mach-shmobile ARM: mach-shmobile: make a struct in board-ap4evb.c static 2011-06-30 14:37:06 +09:00
mach-spear3xx
mach-spear6xx
mach-tcc8k
mach-tegra ARM: Tegra: Harmony: Fix conflicting GPIO numbering 2011-06-04 15:51:52 -07:00
mach-u300 ARM: 6949/2: mach-u300: fix compilaton warning in IO accessors 2011-06-09 10:15:06 +01:00
mach-ux500 Merge branch 'tty-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/tty-2.6 2011-06-28 11:14:55 -07:00
mach-versatile
mach-vexpress ARM: 6946/1: vexpress: move v2m clock init to init_early 2011-06-06 10:56:09 +01:00
mach-vt8500 ARM: 6979/1: mach-vt8500: add forgotten irq_data conversion 2011-07-06 20:46:04 +01:00
mach-w90x900
mm ARM: 6987/1: l2x0: fix disabling function to avoid deadlock 2011-07-06 20:48:08 +01:00
nwfpe
oprofile
plat-iop ARM: 6969/1: plat-iop: fix build error 2011-06-21 11:33:21 +01:00
plat-mxc ARM: mx51/sdma: Check the chip revision in run-time 2011-06-06 09:50:04 +02:00
plat-nomadik gpio/nomadik: fix sleepmode for elder Nomadik 2011-06-09 15:03:38 -06:00
plat-omap Merge branch 'fixes-v3.0-rc3' into devel-fixes 2011-06-14 05:53:42 -07:00
plat-orion
plat-pxa
plat-s3c24xx ARM: S3C24XX: drop return codes in void function of dma.c 2011-07-08 14:34:05 +09:00
plat-s5p ARM: S5P: Fix bug on init of PWMTimers for HRTimer 2011-07-06 08:43:02 +09:00
plat-samsung Merge branch 'for-spi' into s5p-fixes-for-linus 2011-07-06 15:46:41 +09:00
plat-spear
plat-tcc
plat-versatile
tools
vfp
Kconfig ARM: Kconfig: Allow kprobes on Thumb-2 kernels 2011-07-13 17:32:41 +00:00
Kconfig-nommu
Kconfig.debug lib: consolidate DEBUG_STACK_USAGE option 2011-05-25 08:39:54 -07:00
Makefile Merge branch 'for-rmk' of git://git.kernel.org/pub/scm/linux/kernel/git/kgene/linux-samsung into devel-stable 2011-05-25 21:47:48 +01:00