[PATCH] i386: change more uses of user_mode to user_mode_vm

From: Jan Beulich
Date: Fri Nov 18 2005 - 08:32:08 EST


>commit 76381fee7e8feb4c22be636aa5d4765dbe4fbf9e
>Author: Vincent Hanquez <vincent.hanquez@xxxxxxxxxxxx>
>Date: Thu Jun 23 00:08:46 2005 -0700
>
> [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.

Having just learned about the existance of user_mode_vm, I am of the
opinion that the above changeset is incomplete, i.e. it missed
converting some previous uses of user_mode to user_mode_vm. While most
of them could be considered just cosmentical, at least the one in
die_nmi isn't.

Signed-Off-By: Jan Beulich <jbeulich@xxxxxxxxxx>

(actual patch attached)
>commit 76381fee7e8feb4c22be636aa5d4765dbe4fbf9e
>Author: Vincent Hanquez <vincent.hanquez@xxxxxxxxxxxx>
>Date: Thu Jun 23 00:08:46 2005 -0700
>
> [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.

Having just learned about the existance of user_mode_vm, I am of the
opinion that the above changeset is incomplete, i.e. it missed
converting some previous uses of user_mode to user_mode_vm. While most
of them could be considered just cosmentical, at least the one in
die_nmi isn't.

From: Jan Beulich <jbeulich@xxxxxxxxxx>

Signed-Off-By: Jan Beulich <jbeulich@xxxxxxxxxx>

--- linux-2.6.15-rc1/arch/i386/kernel/crash.c 2005-11-18 13:11:59.000000000 +0100
+++ 2.6.15-rc1/arch/i386/kernel/crash.c 2005-11-18 13:17:57.000000000 +0100
@@ -142,7 +142,7 @@ static int crash_nmi_callback(struct pt_
return 1;
local_irq_disable();

- if (!user_mode(regs)) {
+ if (!user_mode_vm(regs)) {
crash_setup_regs(&fixed_regs, regs);
regs = &fixed_regs;
}
--- linux-2.6.15-rc1/arch/i386/kernel/process.c 2005-11-18 13:11:59.000000000 +0100
+++ 2.6.15-rc1/arch/i386/kernel/process.c 2005-11-18 13:20:12.000000000 +0100
@@ -294,7 +294,7 @@ void show_regs(struct pt_regs * regs)
printk("EIP: %04x:[<%08lx>] CPU: %d\n",0xffff & regs->xcs,regs->eip, smp_processor_id());
print_symbol("EIP is at %s\n", regs->eip);

- if (user_mode(regs))
+ if (user_mode_vm(regs))
printk(" ESP: %04x:%08lx",0xffff & regs->xss,regs->esp);
printk(" EFLAGS: %08lx %s (%s)\n",
regs->eflags, print_tainted(), system_utsname.release);
--- linux-2.6.15-rc1/arch/i386/kernel/traps.c 2005-11-18 13:11:59.000000000 +0100
+++ 2.6.15-rc1/arch/i386/kernel/traps.c 2005-11-18 13:21:19.000000000 +0100
@@ -210,7 +210,7 @@ void show_registers(struct pt_regs *regs

esp = (unsigned long) (&regs->esp);
savesegment(ss, ss);
- if (user_mode(regs)) {
+ if (user_mode_vm(regs)) {
in_kernel = 0;
esp = regs->esp;
ss = regs->xss & 0xffff;
@@ -589,7 +589,7 @@ void die_nmi (struct pt_regs *regs, cons
/* If we are in kernel we are probably nested up pretty bad
* and might aswell get out now while we still can.
*/
- if (!user_mode(regs)) {
+ if (!user_mode_vm(regs)) {
current->thread.trap_no = 2;
crash_kexec(regs);
}
--- linux-2.6.15-rc1/include/asm-i386/mach-default/do_timer.h 2005-10-28 02:02:08.000000000 +0200
+++ 2.6.15-rc1/include/asm-i386/mach-default/do_timer.h 2005-11-18 13:16:52.000000000 +0100
@@ -18,7 +18,7 @@ static inline void do_timer_interrupt_ho
{
do_timer(regs);
#ifndef CONFIG_SMP
- update_process_times(user_mode(regs));
+ update_process_times(user_mode_vm(regs));
#endif
/*
* In the SMP case we use the local APIC timer interrupt to do the
--- linux-2.6.15-rc1/include/asm-i386/mach-visws/do_timer.h 2005-10-28 02:02:08.000000000 +0200
+++ 2.6.15-rc1/include/asm-i386/mach-visws/do_timer.h 2005-11-18 13:17:05.000000000 +0100
@@ -11,7 +11,7 @@ static inline void do_timer_interrupt_ho

do_timer(regs);
#ifndef CONFIG_SMP
- update_process_times(user_mode(regs));
+ update_process_times(user_mode_vm(regs));
#endif
/*
* In the SMP case we use the local APIC timer interrupt to do the
--- linux-2.6.15-rc1/include/asm-i386/mach-voyager/do_timer.h 2005-10-28 02:02:08.000000000 +0200
+++ 2.6.15-rc1/include/asm-i386/mach-voyager/do_timer.h 2005-11-18 13:17:16.000000000 +0100
@@ -5,7 +5,7 @@ static inline void do_timer_interrupt_ho
{
do_timer(regs);
#ifndef CONFIG_SMP
- update_process_times(user_mode(regs));
+ update_process_times(user_mode_vm(regs));
#endif

voyager_timer_interrupt(regs);