[PATCH] xen: x86_64: use more usermode macro

Make use of the user_mode macro where it's possible.  This is useful for Xen
because it will need only to redefine only the macro to a hypervisor call.

Signed-off-by: Vincent Hanquez <vincent.hanquez@cl.cam.ac.uk>
Cc: Ian Pratt <m+Ian.Pratt@cl.cam.ac.uk>
Cc: Andi Kleen <ak@muc.de>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Vincent Hanquez 2005-06-23 00:08:46 -07:00 committed by Linus Torvalds
parent e9129e56e9
commit 76381fee7e
3 changed files with 12 additions and 12 deletions

View File

@ -422,7 +422,7 @@ int do_signal(struct pt_regs *regs, sigset_t *oldset)
* kernel mode. Just return without doing anything * kernel mode. Just return without doing anything
* if so. * if so.
*/ */
if ((regs->cs & 3) != 3) if (!user_mode(regs))
return 1; return 1;
if (try_to_freeze(0)) if (try_to_freeze(0))

View File

@ -274,7 +274,7 @@ EXPORT_SYMBOL(dump_stack);
void show_registers(struct pt_regs *regs) void show_registers(struct pt_regs *regs)
{ {
int i; int i;
int in_kernel = (regs->cs & 3) == 0; int in_kernel = !user_mode(regs);
unsigned long rsp; unsigned long rsp;
const int cpu = safe_smp_processor_id(); const int cpu = safe_smp_processor_id();
struct task_struct *cur = cpu_pda[cpu].pcurrent; struct task_struct *cur = cpu_pda[cpu].pcurrent;
@ -318,7 +318,7 @@ void handle_BUG(struct pt_regs *regs)
struct bug_frame f; struct bug_frame f;
char tmp; char tmp;
if (regs->cs & 3) if (user_mode(regs))
return; return;
if (__copy_from_user(&f, (struct bug_frame *) regs->rip, if (__copy_from_user(&f, (struct bug_frame *) regs->rip,
sizeof(struct bug_frame))) sizeof(struct bug_frame)))
@ -437,7 +437,7 @@ static void do_trap(int trapnr, int signr, char *str,
} }
#endif #endif
if ((regs->cs & 3) != 0) { if (user_mode(regs)) {
struct task_struct *tsk = current; struct task_struct *tsk = current;
if (exception_trace && unhandled_signal(tsk, signr)) if (exception_trace && unhandled_signal(tsk, signr))
@ -522,7 +522,7 @@ asmlinkage void do_general_protection(struct pt_regs * regs, long error_code)
} }
#endif #endif
if ((regs->cs & 3)!=0) { if (user_mode(regs)) {
struct task_struct *tsk = current; struct task_struct *tsk = current;
if (exception_trace && unhandled_signal(tsk, SIGSEGV)) if (exception_trace && unhandled_signal(tsk, SIGSEGV))
@ -638,7 +638,7 @@ asmlinkage struct pt_regs *sync_regs(struct pt_regs *eregs)
if (eregs == (struct pt_regs *)eregs->rsp) if (eregs == (struct pt_regs *)eregs->rsp)
; ;
/* Exception from user space */ /* Exception from user space */
else if (eregs->cs & 3) else if (user_mode(eregs))
regs = ((struct pt_regs *)current->thread.rsp0) - 1; regs = ((struct pt_regs *)current->thread.rsp0) - 1;
/* Exception from kernel and interrupts are enabled. Move to /* Exception from kernel and interrupts are enabled. Move to
kernel process stack. */ kernel process stack. */
@ -697,7 +697,7 @@ asmlinkage void do_debug(struct pt_regs * regs, unsigned long error_code)
* allowing programs to debug themselves without the ptrace() * allowing programs to debug themselves without the ptrace()
* interface. * interface.
*/ */
if ((regs->cs & 3) == 0) if (!user_mode(regs))
goto clear_TF_reenable; goto clear_TF_reenable;
/* /*
* Was the TF flag set by a debugger? If so, clear it now, * Was the TF flag set by a debugger? If so, clear it now,
@ -715,7 +715,7 @@ asmlinkage void do_debug(struct pt_regs * regs, unsigned long error_code)
info.si_signo = SIGTRAP; info.si_signo = SIGTRAP;
info.si_errno = 0; info.si_errno = 0;
info.si_code = TRAP_BRKPT; info.si_code = TRAP_BRKPT;
if ((regs->cs & 3) == 0) if (!user_mode(regs))
goto clear_dr7; goto clear_dr7;
info.si_addr = (void __user *)regs->rip; info.si_addr = (void __user *)regs->rip;
@ -756,7 +756,7 @@ asmlinkage void do_coprocessor_error(struct pt_regs *regs)
unsigned short cwd, swd; unsigned short cwd, swd;
conditional_sti(regs); conditional_sti(regs);
if ((regs->cs & 3) == 0 && if (!user_mode(regs) &&
kernel_math_error(regs, "kernel x87 math error")) kernel_math_error(regs, "kernel x87 math error"))
return; return;
@ -822,7 +822,7 @@ asmlinkage void do_simd_coprocessor_error(struct pt_regs *regs)
unsigned short mxcsr; unsigned short mxcsr;
conditional_sti(regs); conditional_sti(regs);
if ((regs->cs & 3) == 0 && if (!user_mode(regs) &&
kernel_math_error(regs, "kernel simd math error")) kernel_math_error(regs, "kernel simd math error"))
return; return;

View File

@ -74,7 +74,7 @@ static noinline int is_prefetch(struct pt_regs *regs, unsigned long addr,
instr = (unsigned char *)convert_rip_to_linear(current, regs); instr = (unsigned char *)convert_rip_to_linear(current, regs);
max_instr = instr + 15; max_instr = instr + 15;
if ((regs->cs & 3) != 0 && instr >= (unsigned char *)TASK_SIZE) if (user_mode(regs) && instr >= (unsigned char *)TASK_SIZE)
return 0; return 0;
while (scan_more && instr < max_instr) { while (scan_more && instr < max_instr) {
@ -106,7 +106,7 @@ static noinline int is_prefetch(struct pt_regs *regs, unsigned long addr,
/* Could check the LDT for lm, but for now it's good /* Could check the LDT for lm, but for now it's good
enough to assume that long mode only uses well known enough to assume that long mode only uses well known
segments or kernel. */ segments or kernel. */
scan_more = ((regs->cs & 3) == 0) || (regs->cs == __USER_CS); scan_more = (!user_mode(regs)) || (regs->cs == __USER_CS);
break; break;
case 0x60: case 0x60: