ARM: kprobes: Reject 16-bit Thumb SVC and UNDEFINED instructions
authorJon Medhurst <tixy@yxit.co.uk>
Sat, 2 Jul 2011 15:25:47 +0000 (16:25 +0100)
committerTixy <tixy@medhuaa1.miniserver.com>
Wed, 13 Jul 2011 17:32:44 +0000 (17:32 +0000)
SVC (SWI) instructions shouldn't occur in kernel code so we don't
need to be able to probe them.

Signed-off-by: Jon Medhurst <tixy@yxit.co.uk>
Acked-by: Nicolas Pitre <nicolas.pitre@linaro.org>
arch/arm/kernel/kprobes-thumb.c

index e496948..997fc6d 100644 (file)
@@ -464,6 +464,14 @@ const union decode_item kprobe_decode_thumb16_table[] = {
        /* LDM                          1100 1xxx xxxx xxxx */
        DECODE_EMULATE  (0xf000, 0xc000, t16_emulate_loregs_rwflags),
 
+       /*
+        * Conditional branch, and Supervisor Call
+        */
+
+       /* Permanently UNDEFINED        1101 1110 xxxx xxxx */
+       /* SVC                          1101 1111 xxxx xxxx */
+       DECODE_REJECT   (0xfe00, 0xde00),
+
        DECODE_END
 };