ARM: kprobes: Fix emulation of Data-processing (immediate) instructions
authorJon Medhurst <tixy@yxit.co.uk>
Wed, 6 Apr 2011 10:17:12 +0000 (11:17 +0100)
committerNicolas Pitre <nicolas.pitre@linaro.org>
Fri, 29 Apr 2011 03:40:55 +0000 (23:40 -0400)
Emulation of instructions like "ADD rd, rn, #<const>" would result in a
corrupted value for rd.

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

index ee29d3350437dc3adc99ee570afe4463be076f2b..baf053ea96eb83944d7a196598dd71399d5e40ef 100644 (file)
@@ -1207,7 +1207,7 @@ space_cccc_001x(kprobe_opcode_t insn, struct arch_specific_insn *asi)
         * *S (bit 20) updates condition codes
         * ADC/SBC/RSC reads the C flag
         */
-       insn &= 0xffff0fff;     /* Rd = r0 */
+       insn &= 0xfff00fff;     /* Rn = r0 and Rd = r0 */
        asi->insn[0] = insn;
 
        if ((insn & 0x0f900000) == 0x03100000) {