linux/arch/arm/kernel
Rabin Vincent f8b435bb91 ARM: 7440/1: kprobes: only test 'sub pc, pc, #1b-2b+8-2' on ARMv6
'sub pc, pc, #1b-2b+8-2' results in address<1:0> == '10'.

sub pc, pc, #const (== ADR pc, #const) performs an interworking branch
(BXWritePC()) on ARMv7+ and a simple branch (BranchWritePC()) on earlier
versions.

In ARM state, BXWritePC() is UNPREDICTABLE when address<1:0> == '10'.

In ARM state on ARMv6+, BranchWritePC() ignores address<1:0>.  Before
ARMv6, BranchWritePC() is UNPREDICTABLE if address<1:0> != '00'

So the instruction is UNPREDICTABLE both before and after v6.

Acked-by: Jon Medhurst <tixy@yxit.co.uk>
Signed-off-by: Rabin Vincent <rabin.vincent@stericsson.com>
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
2012-07-05 12:57:16 +01:00
..
.gitignore
arch_timer.c ARM: architected timers: remove support for non DT platforms 2012-04-27 13:39:25 +01:00
armksyms.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
arthur.c
asm-offsets.c
atags.c
atags.h
bios32.c ARM: PCI: remove per-pci_hw list of buses 2012-05-16 15:24:12 +01:00
calls.S
compat.c
compat.h
cpuidle.c cpuidle: Add common time keeping and irq enabling 2012-03-21 01:59:40 -04:00
crash_dump.c
debug.S ARM: cleanups of io includes 2012-03-29 18:02:10 -07:00
devtree.c
dma-isa.c
dma.c
early_printk.c
elf.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
entry-armv.S ARM: 7425/1: extable: ensure fixup entries are 4-byte aligned 2012-06-16 16:30:25 +01:00
entry-common.S Merge branch 'for-arm' of git://git.kernel.org/pub/scm/linux/kernel/git/viro/signal.git into for-linus 2012-05-29 22:13:55 +01:00
entry-header.S
etm.c
fiq.c ARM: move CP15 definitions to separate header file 2012-03-28 18:30:01 +01:00
fiqasm.S
ftrace.c ARM: 7331/1: extract out insn generation code from ftrace 2012-03-24 09:38:55 +00:00
head-common.S
head-nommu.S ARM: move CP15 definitions to separate header file 2012-03-28 18:30:01 +01:00
head.S ARM: 7363/1: DEBUG_LL: limit early mapping to the minimum 2012-05-04 16:56:46 +01:00
hw_breakpoint.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
insn.c ARM: fix missing bug.h include in arch/arm/kernel/insn.c 2012-03-30 11:51:46 +01:00
insn.h ARM: 7334/1: add jump label support 2012-03-24 09:38:56 +00:00
io.c
irq.c ARM: 7406/1: hotplug: copy the affinity mask when forcefully migrating IRQs 2012-04-28 11:01:31 +01:00
isa.c
iwmmxt.S
jump_label.c ARM: 7334/1: add jump label support 2012-03-24 09:38:56 +00:00
kgdb.c
kprobes-arm.c
kprobes-common.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
kprobes-test-arm.c ARM: 7440/1: kprobes: only test 'sub pc, pc, #1b-2b+8-2' on ARMv6 2012-07-05 12:57:16 +01:00
kprobes-test-thumb.c
kprobes-test.c
kprobes-test.h
kprobes-thumb.c ARM: 7423/1: kprobes: run t32_simulate_ldr_literal() without insn slot 2012-06-14 15:11:44 +01:00
kprobes.c Autogenerated GPG tag for Rusty D1ADB8F1: 15EE 8D6C AB0E 7F0C F999 BFCB D920 0E6C D1AD B8F1 2012-04-02 08:53:24 -07:00
kprobes.h
leds.c
machine_kexec.c Merge branch 'for-linus' of git://git.linaro.org/people/rmk/linux-arm 2012-03-29 16:53:48 -07:00
Makefile Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2012-05-21 19:43:57 -07:00
module.c
opcodes.c
patch.c ARM: 7332/1: extract out code patch function from kprobes 2012-03-24 09:38:55 +00:00
patch.h ARM: 7332/1: extract out code patch function from kprobes 2012-03-24 09:38:55 +00:00
perf_event.c ARM: 7441/1: perf: return -EOPNOTSUPP if requested mode exclusion is unavailable 2012-07-05 09:50:56 +01:00
perf_event_v6.c perf: Pass last sampling period to perf_sample_data_init() 2012-05-09 15:23:12 +02:00
perf_event_v7.c perf: Pass last sampling period to perf_sample_data_init() 2012-05-09 15:23:12 +02:00
perf_event_xscale.c perf: Pass last sampling period to perf_sample_data_init() 2012-05-09 15:23:12 +02:00
pj4-cp0.c
pmu.c
process.c arm: Remove unused cpu_idle_wait() 2012-05-08 12:35:06 +02:00
ptrace.c ARM: 7443/1: Revert "new way of handling ERESTART_RESTARTBLOCK" 2012-07-05 09:50:56 +01:00
relocate_kernel.S
return_address.c
sched_clock.c ARM: sync sched_clock() state on suspend 2012-03-24 09:38:53 +00:00
setup.c arm-soc: sweeping late_initcall cleanup 2012-05-26 13:14:01 -07:00
signal.c ARM: 7443/1: Revert "new way of handling ERESTART_RESTARTBLOCK" 2012-07-05 09:50:56 +01:00
signal.h ARM: 7442/1: Revert "remove unused restart trampoline" 2012-07-05 09:50:56 +01:00
sleep.S Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
smp.c arm: use clear_tasks_mm_cpumask() 2012-05-31 17:49:29 -07:00
smp_scu.c ARM: 7347/1: SCU: use cpu_logical_map for per-CPU low power mode 2012-04-28 17:31:37 +01:00
smp_tlb.c smp: introduce a generic on_each_cpu_mask() function 2012-03-28 17:14:35 -07:00
smp_twd.c Revert "ARM: 7359/2: smp_twd: Only wait for reprogramming on active cpus" 2012-04-19 19:35:10 +01:00
stacktrace.c
suspend.c
swp_emulate.c
sys_arm.c ARM: 7410/1: Add extra clobber registers for assembly in kernel_execve 2012-05-05 13:54:01 +01:00
sys_oabi-compat.c userns: Convert stat to return values mapped from kuids and kgids 2012-05-15 14:08:35 -07:00
tcm.c Disintegrate asm/system.h for ARM 2012-03-28 18:30:01 +01:00
tcm.h
thumbee.c ARM: 7385/1: ThumbEE: Use cpuid macros to read ID_PFR0 for ThumbEE 2012-04-25 19:49:26 +01:00
time.c ARM: 7413/1: move read_{boot,persistent}_clock to the architecture level 2012-05-06 11:09:21 +01:00
topology.c
traps.c ARM: 7442/1: Revert "remove unused restart trampoline" 2012-07-05 09:50:56 +01:00
unwind.c
vmlinux.lds.S ARM: 7428/1: Prevent KALLSYM size mismatch on ARM. 2012-06-22 22:54:18 +01:00
xscale-cp0.c