diff options
author | Roland McGrath <roland@redhat.com> | 2010-07-16 21:17:12 -0400 |
---|---|---|
committer | Roland McGrath <roland@redhat.com> | 2010-07-18 18:05:34 -0400 |
commit | a197479848a2f1a2a5c07cffa6c31ab5e8c82797 (patch) | |
tree | 6d66cad929d5a2e2aaeb9d33d94b46c9d1093b26 | |
parent | bea9a6d239cb2aa2ced4dcb0a05e1827ce61fa3d (diff) |
x86: kprobes: fix swapped segment registers in kretprobe
In commit f007ea26, the order of the %es and %ds segment registers
got accidentally swapped, so synthesized 'struct pt_regs' frames
have the two values inverted. It's almost sure that these values
never matter, and that they also never differ. But wrong is wrong.
Signed-off-by: Roland McGrath <roland@redhat.com>
-rw-r--r-- | arch/x86/kernel/kprobes.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kernel/kprobes.c b/arch/x86/kernel/kprobes.c index 345a4b1fe144..675879b65ce6 100644 --- a/arch/x86/kernel/kprobes.c +++ b/arch/x86/kernel/kprobes.c | |||
@@ -640,8 +640,8 @@ static int __kprobes kprobe_handler(struct pt_regs *regs) | |||
640 | /* Skip cs, ip, orig_ax and gs. */ \ | 640 | /* Skip cs, ip, orig_ax and gs. */ \ |
641 | " subl $16, %esp\n" \ | 641 | " subl $16, %esp\n" \ |
642 | " pushl %fs\n" \ | 642 | " pushl %fs\n" \ |
643 | " pushl %ds\n" \ | ||
644 | " pushl %es\n" \ | 643 | " pushl %es\n" \ |
644 | " pushl %ds\n" \ | ||
645 | " pushl %eax\n" \ | 645 | " pushl %eax\n" \ |
646 | " pushl %ebp\n" \ | 646 | " pushl %ebp\n" \ |
647 | " pushl %edi\n" \ | 647 | " pushl %edi\n" \ |