aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVincent Hanquez <vincent.hanquez@cl.cam.ac.uk>2005-06-23 03:08:44 -0400
committerLinus Torvalds <torvalds@ppc970.osdl.org>2005-06-23 12:45:14 -0400
commitfa1e1bdf78d405f9905b8290ee9211e7a7bbc99b (patch)
tree92b63c9965beb9718cfe426f2c2a81f397eb87c4
parent1cc6f12e03ebc064b74161c684f987284ce9d0cc (diff)
[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>
-rw-r--r--arch/i386/kernel/apic.c2
-rw-r--r--arch/i386/kernel/ptrace.c2
-rw-r--r--arch/i386/mach-voyager/voyager_smp.c2
-rw-r--r--arch/i386/oprofile/backtrace.c2
-rw-r--r--include/asm-i386/ptrace.h3
-rw-r--r--include/asm-x86_64/ptrace.h1
6 files changed, 7 insertions, 5 deletions
diff --git a/arch/i386/kernel/apic.c b/arch/i386/kernel/apic.c
index d509836b70c3..8d993fa71754 100644
--- a/arch/i386/kernel/apic.c
+++ b/arch/i386/kernel/apic.c
@@ -1133,7 +1133,7 @@ inline void smp_local_timer_interrupt(struct pt_regs * regs)
1133 } 1133 }
1134 1134
1135#ifdef CONFIG_SMP 1135#ifdef CONFIG_SMP
1136 update_process_times(user_mode(regs)); 1136 update_process_times(user_mode_vm(regs));
1137#endif 1137#endif
1138 } 1138 }
1139 1139
diff --git a/arch/i386/kernel/ptrace.c b/arch/i386/kernel/ptrace.c
index e34f651fa13c..0da59b42843c 100644
--- a/arch/i386/kernel/ptrace.c
+++ b/arch/i386/kernel/ptrace.c
@@ -668,7 +668,7 @@ void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs, int error_code)
668 info.si_code = TRAP_BRKPT; 668 info.si_code = TRAP_BRKPT;
669 669
670 /* User-mode eip? */ 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 /* Send us the fakey SIGTRAP */ 673 /* Send us the fakey SIGTRAP */
674 force_sig_info(SIGTRAP, &info, tsk); 674 force_sig_info(SIGTRAP, &info, tsk);
diff --git a/arch/i386/mach-voyager/voyager_smp.c b/arch/i386/mach-voyager/voyager_smp.c
index a6e0ddd65bd0..8c8527593da0 100644
--- a/arch/i386/mach-voyager/voyager_smp.c
+++ b/arch/i386/mach-voyager/voyager_smp.c
@@ -1288,7 +1288,7 @@ smp_local_timer_interrupt(struct pt_regs * regs)
1288 per_cpu(prof_counter, cpu); 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 if( ((1<<cpu) & voyager_extended_vic_processors) == 0) 1294 if( ((1<<cpu) & voyager_extended_vic_processors) == 0)
diff --git a/arch/i386/oprofile/backtrace.c b/arch/i386/oprofile/backtrace.c
index 52d72e074f7f..65dfd2edb671 100644
--- a/arch/i386/oprofile/backtrace.c
+++ b/arch/i386/oprofile/backtrace.c
@@ -91,7 +91,7 @@ x86_backtrace(struct pt_regs * const regs, unsigned int depth)
91 head = (struct frame_head *)regs->ebp; 91 head = (struct frame_head *)regs->ebp;
92#endif 92#endif
93 93
94 if (!user_mode(regs)) { 94 if (!user_mode_vm(regs)) {
95 while (depth-- && valid_kernel_stack(head, regs)) 95 while (depth-- && valid_kernel_stack(head, regs))
96 head = dump_backtrace(head); 96 head = dump_backtrace(head);
97 return; 97 return;
diff --git a/include/asm-i386/ptrace.h b/include/asm-i386/ptrace.h
index 8618914b3521..eef9f93870d4 100644
--- a/include/asm-i386/ptrace.h
+++ b/include/asm-i386/ptrace.h
@@ -57,7 +57,8 @@ struct pt_regs {
57#ifdef __KERNEL__ 57#ifdef __KERNEL__
58struct task_struct; 58struct task_struct;
59extern void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs, int error_code); 59extern 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#define instruction_pointer(regs) ((regs)->eip) 62#define instruction_pointer(regs) ((regs)->eip)
62#if defined(CONFIG_SMP) && defined(CONFIG_FRAME_POINTER) 63#if defined(CONFIG_SMP) && defined(CONFIG_FRAME_POINTER)
63extern unsigned long profile_pc(struct pt_regs *regs); 64extern unsigned long profile_pc(struct pt_regs *regs);
diff --git a/include/asm-x86_64/ptrace.h b/include/asm-x86_64/ptrace.h
index 5bbc8d3141c8..ca6f15ff61d4 100644
--- a/include/asm-x86_64/ptrace.h
+++ b/include/asm-x86_64/ptrace.h
@@ -82,6 +82,7 @@ struct pt_regs {
82 82
83#if defined(__KERNEL__) && !defined(__ASSEMBLY__) 83#if defined(__KERNEL__) && !defined(__ASSEMBLY__)
84#define user_mode(regs) (!!((regs)->cs & 3)) 84#define user_mode(regs) (!!((regs)->cs & 3))
85#define user_mode_vm(regs) user_mode(regs)
85#define instruction_pointer(regs) ((regs)->rip) 86#define instruction_pointer(regs) ((regs)->rip)
86extern unsigned long profile_pc(struct pt_regs *regs); 87extern unsigned long profile_pc(struct pt_regs *regs);
87void signal_fault(struct pt_regs *regs, void __user *frame, char *where); 88void signal_fault(struct pt_regs *regs, void __user *frame, char *where);