diff options
author | Rabin Vincent <rabin.vincent@stericsson.com> | 2012-07-04 08:37:37 +0200 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2012-07-05 13:57:16 +0200 |
commit | f8b435bb918412c9410da4c4b0b02b6b3d99b27c (patch) | |
tree | 437a95d7a2b25659172cb4353b1511152e216a1c /arch/arm/include/asm | |
parent | ARM: 7441/1: perf: return -EOPNOTSUPP if requested mode exclusion is unavailable (diff) | |
download | linux-f8b435bb918412c9410da4c4b0b02b6b3d99b27c.tar.xz linux-f8b435bb918412c9410da4c4b0b02b6b3d99b27c.zip |
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>
Diffstat (limited to '')
0 files changed, 0 insertions, 0 deletions