Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[PATCH] xen: x86: Rename usermode macro

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 <vincent.hanquez@cl.cam.ac.uk>
Cc: Ian Pratt <m+Ian.Pratt@cl.cam.ac.uk>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>

authored by

Vincent Hanquez and committed by
Linus Torvalds
fa1e1bdf 1cc6f12e

+7 -5
+1 -1
arch/i386/kernel/apic.c
··· 1133 1133 } 1134 1134 1135 1135 #ifdef CONFIG_SMP 1136 - update_process_times(user_mode(regs)); 1136 + update_process_times(user_mode_vm(regs)); 1137 1137 #endif 1138 1138 } 1139 1139
+1 -1
arch/i386/kernel/ptrace.c
··· 668 668 info.si_code = TRAP_BRKPT; 669 669 670 670 /* User-mode eip? */ 671 - info.si_addr = user_mode(regs) ? (void __user *) regs->eip : NULL; 671 + info.si_addr = user_mode_vm(regs) ? (void __user *) regs->eip : NULL; 672 672 673 673 /* Send us the fakey SIGTRAP */ 674 674 force_sig_info(SIGTRAP, &info, tsk);
+1 -1
arch/i386/mach-voyager/voyager_smp.c
··· 1288 1288 per_cpu(prof_counter, cpu); 1289 1289 } 1290 1290 1291 - update_process_times(user_mode(regs)); 1291 + update_process_times(user_mode_vm(regs)); 1292 1292 } 1293 1293 1294 1294 if( ((1<<cpu) & voyager_extended_vic_processors) == 0)
+1 -1
arch/i386/oprofile/backtrace.c
··· 91 91 head = (struct frame_head *)regs->ebp; 92 92 #endif 93 93 94 - if (!user_mode(regs)) { 94 + if (!user_mode_vm(regs)) { 95 95 while (depth-- && valid_kernel_stack(head, regs)) 96 96 head = dump_backtrace(head); 97 97 return;
+2 -1
include/asm-i386/ptrace.h
··· 57 57 #ifdef __KERNEL__ 58 58 struct task_struct; 59 59 extern void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs, int error_code); 60 - #define user_mode(regs) ((VM_MASK & (regs)->eflags) || (3 & (regs)->xcs)) 60 + #define user_mode(regs) (3 & (regs)->xcs) 61 + #define user_mode_vm(regs) ((VM_MASK & (regs)->eflags) || user_mode(regs)) 61 62 #define instruction_pointer(regs) ((regs)->eip) 62 63 #if defined(CONFIG_SMP) && defined(CONFIG_FRAME_POINTER) 63 64 extern unsigned long profile_pc(struct pt_regs *regs);
+1
include/asm-x86_64/ptrace.h
··· 82 82 83 83 #if defined(__KERNEL__) && !defined(__ASSEMBLY__) 84 84 #define user_mode(regs) (!!((regs)->cs & 3)) 85 + #define user_mode_vm(regs) user_mode(regs) 85 86 #define instruction_pointer(regs) ((regs)->rip) 86 87 extern unsigned long profile_pc(struct pt_regs *regs); 87 88 void signal_fault(struct pt_regs *regs, void __user *frame, char *where);