# HG changeset patch # User kaf24@scramble.cl.cam.ac.uk # Date 1050518641 0 # Node ID 93721e4cec72d865a734281cbf6fd7c5fe18d2fe # Parent 95c43a4b66857b59bf07c8d1a4b6d298a76b9752 bitkeeper revision 1.174.1.1 (3e9da471qg3yz_feoqPtr18G7aJ8UA) ptrace.h, traps.c: Fix ring privilege checking in Xenolinux (OS runs in ring 1, not ring 0). diff -r 95c43a4b6685 -r 93721e4cec72 xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/traps.c --- a/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/traps.c Wed Apr 16 17:45:20 2003 +0000 +++ b/xenolinux-2.4.21-pre4-sparse/arch/xeno/kernel/traps.c Wed Apr 16 18:44:01 2003 +0000 @@ -364,7 +364,7 @@ asmlinkage void do_debug(struct pt_regs /* If this is a kernel mode trap, save the user PC on entry to * the kernel, that's what the debugger can make sense of. */ - info.si_addr = ((regs->xcs & 3) == 0) ? (void *)tsk->thread.eip : + info.si_addr = ((regs->xcs & 2) == 0) ? (void *)tsk->thread.eip : (void *)regs->eip; force_sig_info(SIGTRAP, &info, tsk); diff -r 95c43a4b6685 -r 93721e4cec72 xenolinux-2.4.21-pre4-sparse/include/asm-xeno/ptrace.h --- a/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/ptrace.h Wed Apr 16 17:45:20 2003 +0000 +++ b/xenolinux-2.4.21-pre4-sparse/include/asm-xeno/ptrace.h Wed Apr 16 18:44:01 2003 +0000 @@ -55,7 +55,7 @@ struct pt_regs { #define PTRACE_O_TRACESYSGOOD 0x00000001 #ifdef __KERNEL__ -#define user_mode(regs) ((regs) && (3 & (regs)->xcs)) +#define user_mode(regs) ((regs) && (2 & (regs)->xcs)) #define instruction_pointer(regs) ((regs) ? (regs)->eip : NULL) extern void show_regs(struct pt_regs *); #endif