summaryrefslogtreecommitdiff
path: root/arch
diff options
context:
space:
mode:
authorRoland McGrath <roland@redhat.com>2010-07-16 18:17:12 -0700
committerGreg Kroah-Hartman <gregkh@suse.de>2010-08-02 10:29:56 -0700
commit43197d90b5c24db796ff4448b3ace7f46048dab3 (patch)
tree97b75c05d4df6d22607380051da8abeb61f6c8d7 /arch
parentb55e938d07d4af42af8997a78bce880b5778f41d (diff)
x86: kprobes: fix swapped segment registers in kretprobe
commit a197479848a2f1a2a5c07cffa6c31ab5e8c82797 upstream. 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> Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/kprobes.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kernel/kprobes.c b/arch/x86/kernel/kprobes.c
index 1658efdfb4e5..ac4ed92d320e 100644
--- a/arch/x86/kernel/kprobes.c
+++ b/arch/x86/kernel/kprobes.c
@@ -632,8 +632,8 @@ static int __kprobes kprobe_handler(struct pt_regs *regs)
/* Skip cs, ip, orig_ax and gs. */ \
" subl $16, %esp\n" \
" pushl %fs\n" \
- " pushl %ds\n" \
" pushl %es\n" \
+ " pushl %ds\n" \
" pushl %eax\n" \
" pushl %ebp\n" \
" pushl %edi\n" \