From: Vincent Hanquez Rename user_mode to user_mode_vm and add a user_mode macro similar to the x86-64 one. This is useful for Xen because the linux xen kernel does not runs on the same priviledge that a vanilla linux kernel, and with this we just need to redefine user_mode(). Signed-off-by: Vincent Hanquez Cc: Ian Pratt Signed-off-by: Andrew Morton --- arch/i386/kernel/apic.c | 2 +- arch/i386/kernel/ptrace.c | 2 +- arch/i386/mach-voyager/voyager_smp.c | 2 +- arch/i386/oprofile/backtrace.c | 2 +- include/asm-i386/ptrace.h | 3 ++- 5 files changed, 6 insertions(+), 5 deletions(-) diff -puN arch/i386/kernel/apic.c~xen-x86-rename-usermode-macro arch/i386/kernel/apic.c --- 25/arch/i386/kernel/apic.c~xen-x86-rename-usermode-macro 2005-05-03 16:14:09.000000000 -0700 +++ 25-akpm/arch/i386/kernel/apic.c 2005-05-03 16:14:09.000000000 -0700 @@ -1133,7 +1133,7 @@ inline void smp_local_timer_interrupt(st } #ifdef CONFIG_SMP - update_process_times(user_mode(regs)); + update_process_times(user_mode_vm(regs)); #endif } diff -puN arch/i386/kernel/ptrace.c~xen-x86-rename-usermode-macro arch/i386/kernel/ptrace.c --- 25/arch/i386/kernel/ptrace.c~xen-x86-rename-usermode-macro 2005-05-03 16:14:09.000000000 -0700 +++ 25-akpm/arch/i386/kernel/ptrace.c 2005-05-03 16:14:09.000000000 -0700 @@ -668,7 +668,7 @@ void send_sigtrap(struct task_struct *ts info.si_code = TRAP_BRKPT; /* User-mode eip? */ - info.si_addr = user_mode(regs) ? (void __user *) regs->eip : NULL; + info.si_addr = user_mode_vm(regs) ? (void __user *) regs->eip : NULL; /* Send us the fakey SIGTRAP */ force_sig_info(SIGTRAP, &info, tsk); diff -puN arch/i386/mach-voyager/voyager_smp.c~xen-x86-rename-usermode-macro arch/i386/mach-voyager/voyager_smp.c --- 25/arch/i386/mach-voyager/voyager_smp.c~xen-x86-rename-usermode-macro 2005-05-03 16:14:09.000000000 -0700 +++ 25-akpm/arch/i386/mach-voyager/voyager_smp.c 2005-05-03 16:14:09.000000000 -0700 @@ -1289,7 +1289,7 @@ smp_local_timer_interrupt(struct pt_regs per_cpu(prof_counter, cpu); } - update_process_times(user_mode(regs)); + update_process_times(user_mode_vm(regs)); } if( ((1<ebp; #endif - if (!user_mode(regs)) { + if (!user_mode_vm(regs)) { while (depth-- && valid_kernel_stack(head, regs)) head = dump_backtrace(head); return; diff -puN include/asm-i386/ptrace.h~xen-x86-rename-usermode-macro include/asm-i386/ptrace.h --- 25/include/asm-i386/ptrace.h~xen-x86-rename-usermode-macro 2005-05-03 16:14:09.000000000 -0700 +++ 25-akpm/include/asm-i386/ptrace.h 2005-05-03 16:14:09.000000000 -0700 @@ -57,7 +57,8 @@ struct pt_regs { #ifdef __KERNEL__ struct task_struct; extern void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs, int error_code); -#define user_mode(regs) ((VM_MASK & (regs)->eflags) || (3 & (regs)->xcs)) +#define user_mode(regs) (3 & (regs)->xcs) +#define user_mode_vm(regs) ((VM_MASK & (regs)->eflags) || user_mode(regs)) #define instruction_pointer(regs) ((regs)->eip) #if defined(CONFIG_SMP) && defined(CONFIG_FRAME_POINTER) extern unsigned long profile_pc(struct pt_regs *regs); _