diff options
Diffstat (limited to 'include/asm-x86/ptrace.h')
-rw-r--r-- | include/asm-x86/ptrace.h | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/include/asm-x86/ptrace.h b/include/asm-x86/ptrace.h index bc442461ac64..e779f2b26b32 100644 --- a/include/asm-x86/ptrace.h +++ b/include/asm-x86/ptrace.h | |||
@@ -140,7 +140,8 @@ extern unsigned long | |||
140 | convert_ip_to_linear(struct task_struct *child, struct pt_regs *regs); | 140 | convert_ip_to_linear(struct task_struct *child, struct pt_regs *regs); |
141 | 141 | ||
142 | #ifdef CONFIG_X86_32 | 142 | #ifdef CONFIG_X86_32 |
143 | extern void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs, int error_code); | 143 | extern void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs, |
144 | int error_code); | ||
144 | #else | 145 | #else |
145 | void signal_fault(struct pt_regs *regs, void __user *frame, char *where); | 146 | void signal_fault(struct pt_regs *regs, void __user *frame, char *where); |
146 | #endif | 147 | #endif |
@@ -169,8 +170,8 @@ static inline int user_mode(struct pt_regs *regs) | |||
169 | static inline int user_mode_vm(struct pt_regs *regs) | 170 | static inline int user_mode_vm(struct pt_regs *regs) |
170 | { | 171 | { |
171 | #ifdef CONFIG_X86_32 | 172 | #ifdef CONFIG_X86_32 |
172 | return ((regs->cs & SEGMENT_RPL_MASK) | | 173 | return ((regs->cs & SEGMENT_RPL_MASK) | (regs->flags & VM_MASK)) >= |
173 | (regs->flags & VM_MASK)) >= USER_RPL; | 174 | USER_RPL; |
174 | #else | 175 | #else |
175 | return user_mode(regs); | 176 | return user_mode(regs); |
176 | #endif | 177 | #endif |