https://github.com/torvalds/linux
Revision 5c6b76fc7d8220e8f00e7a49fb56ca852d7fb661 authored by Jon Medhurst on 08 April 2011, 14:32:56 UTC, committed by Nicolas Pitre on 29 April 2011, 03:40:57 UTC
The decoding of these instructions got the register indexed and
immediate indexed forms the wrong way around, causing incorrect
emulation.

Instructions like "LDRD Rx, [Rx]" were corrupting Rx because the base
register writeback was being performed unconditionally, overwriting the
value just loaded from memory. The fix is to only writeback the base
register when that form of the instruction is used. Note, now that we
reject probing writeback with PC the emulation code doesn't need the
check rn!=15.

Signed-off-by: Jon Medhurst <tixy@yxit.co.uk>
Signed-off-by: Nicolas Pitre <nicolas.pitre@linaro.org>
1 parent 54823ac
History
Tip revision: 5c6b76fc7d8220e8f00e7a49fb56ca852d7fb661 authored by Jon Medhurst on 08 April 2011, 14:32:56 UTC
ARM: kprobes: Fix emulation of LDRD and STRD instructions
Tip revision: 5c6b76f
File Mode Size
Documentation
arch
block
crypto
drivers
firmware
fs
include
init
ipc
kernel
lib
mm
net
samples
scripts
security
sound
tools
usr
virt
.gitignore -rw-r--r-- 941 bytes
.mailmap -rw-r--r-- 4.1 KB
COPYING -rw-r--r-- 18.3 KB
CREDITS -rw-r--r-- 91.7 KB
Kbuild -rw-r--r-- 2.4 KB
Kconfig -rw-r--r-- 252 bytes
MAINTAINERS -rw-r--r-- 187.9 KB
Makefile -rw-r--r-- 51.1 KB
README -rw-r--r-- 17.1 KB
REPORTING-BUGS -rw-r--r-- 3.3 KB

README

back to top