|
@@ -210,7 +210,7 @@ void show_registers(struct pt_regs *regs)
|
|
|
|
|
|
esp = (unsigned long) (®s->esp);
|
|
|
ss = __KERNEL_DS;
|
|
|
- if (regs->xcs & 3) {
|
|
|
+ if (user_mode(regs)) {
|
|
|
in_kernel = 0;
|
|
|
esp = regs->esp;
|
|
|
ss = regs->xss & 0xffff;
|
|
@@ -266,7 +266,7 @@ static void handle_BUG(struct pt_regs *regs)
|
|
|
char c;
|
|
|
unsigned long eip;
|
|
|
|
|
|
- if (regs->xcs & 3)
|
|
|
+ if (user_mode(regs))
|
|
|
goto no_bug; /* Not in kernel */
|
|
|
|
|
|
eip = regs->eip;
|
|
@@ -354,7 +354,7 @@ void die(const char * str, struct pt_regs * regs, long err)
|
|
|
|
|
|
static inline void die_if_kernel(const char * str, struct pt_regs * regs, long err)
|
|
|
{
|
|
|
- if (!(regs->eflags & VM_MASK) && !(3 & regs->xcs))
|
|
|
+ if (!user_mode_vm(regs))
|
|
|
die(str, regs, err);
|
|
|
}
|
|
|
|
|
@@ -367,7 +367,7 @@ static void do_trap(int trapnr, int signr, char *str, int vm86,
|
|
|
goto trap_signal;
|
|
|
}
|
|
|
|
|
|
- if (!(regs->xcs & 3))
|
|
|
+ if (!user_mode(regs))
|
|
|
goto kernel_trap;
|
|
|
|
|
|
trap_signal: {
|
|
@@ -489,7 +489,7 @@ fastcall void do_general_protection(struct pt_regs * regs, long error_code)
|
|
|
if (regs->eflags & VM_MASK)
|
|
|
goto gp_in_vm86;
|
|
|
|
|
|
- if (!(regs->xcs & 3))
|
|
|
+ if (!user_mode(regs))
|
|
|
goto gp_in_kernel;
|
|
|
|
|
|
current->thread.error_code = error_code;
|
|
@@ -716,7 +716,7 @@ fastcall void do_debug(struct pt_regs * regs, long error_code)
|
|
|
* check for kernel mode by just checking the CPL
|
|
|
* of CS.
|
|
|
*/
|
|
|
- if ((regs->xcs & 3) == 0)
|
|
|
+ if (!user_mode(regs))
|
|
|
goto clear_TF_reenable;
|
|
|
}
|
|
|
|