2007-02-06 03:53:56

by Zachary Amsden

[permalink] [raw]
Subject: [PATCH 4/11] Kprobe rpl fix

Kprobes bugfix for paravirt compatibility - RPL on the CS when inserting
BPs must match running kernel.

Signed-off-by: Zachary Amsden <[email protected]>
CC: Eric Biederman <[email protected]>

diff -r fad1c2108c13 arch/i386/kernel/kprobes.c
--- a/arch/i386/kernel/kprobes.c Fri Feb 02 16:22:37 2007 -0800
+++ b/arch/i386/kernel/kprobes.c Fri Feb 02 16:28:48 2007 -0800
@@ -408,7 +408,7 @@ fastcall void *__kprobes trampoline_hand
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;