summaryrefslogtreecommitdiffstats
path: root/arch/i386/kernel/kprobes.c
diff options
context:
space:
mode:
authorZachary Amsden <zach@vmware.com>2007-02-13 13:26:21 +0100
committerAndi Kleen <andi@basil.nowhere.org>2007-02-13 13:26:21 +0100
commitac3b6faff961dd52fde71fb199ec3cf68ba35052 (patch)
tree17eda087a7ff0b3a306ae896c0f0a4e2d3e9d94b /arch/i386/kernel/kprobes.c
parent[PATCH] i386: Profile pc badness (diff)
downloadlinux-ac3b6faff961dd52fde71fb199ec3cf68ba35052.tar.xz
linux-ac3b6faff961dd52fde71fb199ec3cf68ba35052.zip
[PATCH] i386: Kprobe rpl fix
Kprobes bugfix for paravirt compatibility - RPL on the CS when inserting BPs must match running kernel. Signed-off-by: Zachary Amsden <zach@vmware.com> Signed-off-by: Andi Kleen <ak@suse.de> CC: Eric Biederman <ebiederm@xmission.com>
Diffstat (limited to 'arch/i386/kernel/kprobes.c')
-rw-r--r--arch/i386/kernel/kprobes.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/i386/kernel/kprobes.c b/arch/i386/kernel/kprobes.c
index b85cfa3ce1dd..b545bc746fce 100644
--- a/arch/i386/kernel/kprobes.c
+++ b/arch/i386/kernel/kprobes.c
@@ -408,7 +408,7 @@ fastcall void *__kprobes trampoline_handler(struct pt_regs *regs)
spin_lock_irqsave(&kretprobe_lock, flags);
head = kretprobe_inst_table_head(current);
/* fixup registers */
- regs->xcs = __KERNEL_CS;
+ regs->xcs = __KERNEL_CS | get_kernel_rpl();
regs->eip = trampoline_address;
regs->orig_eax = 0xffffffff;