[S390] kprobes: fix instruction length calculation
authorDavid Wilder <dwilder@us.ibm.com>
Wed, 22 Aug 2007 11:51:44 +0000 (13:51 +0200)
committerMartin Schwidefsky <schwidefsky@de.ibm.com>
Wed, 22 Aug 2007 11:51:49 +0000 (13:51 +0200)
commit9c5f225f1a2c67c57ff5dfbe0589de20c5706a16
tree58516a2e938e65f2ab946cb1a19c65f9ff22c764
parent9b5a03e198c951225d0deb05f3107a4631791266
[S390] kprobes: fix instruction length calculation

Placing a kprobe on "bc" instruction (s390/s390x) can cause an oops.
The instruction length is encoded into the first two bits of the s390
instruction. Kprobe is incorrectly computing the instruction length.
The instruction length is used for determining what type of "fix-up" is
needed for conditional branch instruction. The problem can bee seen by
placing a kprobe on a "bc" instruction that will not branch. The
results is that Kprobe incorrectly computes the new instruction
pointer (psw.addr) after single stepping the instruction. The problem
is corrected with this patch.

Signed-off-by: David Wilder <dwilder@us.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com>
arch/s390/kernel/kprobes.c