aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/kernel/kprobes-thumb.c
diff options
context:
space:
mode:
authorJon Medhurst <tixy@yxit.co.uk>2011-07-02 11:39:07 -0400
committerTixy <tixy@medhuaa1.miniserver.com>2011-07-13 13:32:45 -0400
commit0a188ccb5eceb58101fcc11b3ec2d860ccbf92a3 (patch)
treedb6a7b59aa21c16c6dd0857439fe357efc29b75c /arch/arm/kernel/kprobes-thumb.c
parent396b41f68d937a0c48ba624186ed06288b35bb4e (diff)
ARM: kprobes: Reject 16-bit Thumb SETEND, CPS and BKPT instructions
These are very rare and/or problematic to emulate so we will take the easy option and disallow probing them (as does the existing ARM implementation). Rejecting these instructions doesn't actually require any entries in the decoding table as it is the default case for instructions which aren't found. Signed-off-by: Jon Medhurst <tixy@yxit.co.uk> Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
Diffstat (limited to 'arch/arm/kernel/kprobes-thumb.c')
-rw-r--r--arch/arm/kernel/kprobes-thumb.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/arm/kernel/kprobes-thumb.c b/arch/arm/kernel/kprobes-thumb.c
index d3133fd2d4e8..554578bc5f09 100644
--- a/arch/arm/kernel/kprobes-thumb.c
+++ b/arch/arm/kernel/kprobes-thumb.c
@@ -373,6 +373,10 @@ static const union decode_item t16_table_1011[] = {
373 /* IT 1011 1111 xxxx xxxx */ 373 /* IT 1011 1111 xxxx xxxx */
374 DECODE_CUSTOM (0xff00, 0xbf00, t16_decode_it), 374 DECODE_CUSTOM (0xff00, 0xbf00, t16_decode_it),
375 375
376 /* SETEND 1011 0110 010x xxxx */
377 /* CPS 1011 0110 011x xxxx */
378 /* BKPT 1011 1110 xxxx xxxx */
379 /* And unallocated instructions... */
376 DECODE_END 380 DECODE_END
377}; 381};
378 382