diff options
author | Vincent Hanquez <vincent.hanquez@cl.cam.ac.uk> | 2005-06-23 03:08:44 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@ppc970.osdl.org> | 2005-06-23 12:45:14 -0400 |
commit | fa1e1bdf78d405f9905b8290ee9211e7a7bbc99b (patch) | |
tree | 92b63c9965beb9718cfe426f2c2a81f397eb87c4 | |
parent | 1cc6f12e03ebc064b74161c684f987284ce9d0cc (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.c | 2 | ||||
-rw-r--r-- | arch/i386/kernel/ptrace.c | 2 | ||||
-rw-r--r-- | arch/i386/mach-voyager/voyager_smp.c | 2 | ||||
-rw-r--r-- | arch/i386/oprofile/backtrace.c | 2 | ||||
-rw-r--r-- | include/asm-i386/ptrace.h | 3 | ||||
-rw-r--r-- | include/asm-x86_64/ptrace.h | 1 |
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__ |
58 | struct task_struct; | 58 | struct task_struct; |
59 | extern void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs, int error_code); | 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 | #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) |
63 | extern unsigned long profile_pc(struct pt_regs *regs); | 64 | extern 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) |
86 | extern unsigned long profile_pc(struct pt_regs *regs); | 87 | extern unsigned long profile_pc(struct pt_regs *regs); |
87 | void signal_fault(struct pt_regs *regs, void __user *frame, char *where); | 88 | void signal_fault(struct pt_regs *regs, void __user *frame, char *where); |