Merge tag 'asm-generic-5.3' of git://git.kernel.org/pub/scm/linux/kernel/git/arnd...
[linux-block.git] / arch / x86 / include / asm / ptrace.h
index e22816e865ca0889aade06148e6f7ccdd0803268..332eb352586769c370471204aa320c87c8296927 100644 (file)
@@ -101,8 +101,7 @@ extern unsigned long profile_pc(struct pt_regs *regs);
 
 extern unsigned long
 convert_ip_to_linear(struct task_struct *child, struct pt_regs *regs);
-extern void send_sigtrap(struct task_struct *tsk, struct pt_regs *regs,
-                        int error_code, int si_code);
+extern void send_sigtrap(struct pt_regs *regs, int error_code, int si_code);
 
 
 static inline unsigned long regs_return_value(struct pt_regs *regs)
@@ -165,14 +164,10 @@ static inline bool user_64bit_mode(struct pt_regs *regs)
 #define compat_user_stack_pointer()    current_pt_regs()->sp
 #endif
 
-#ifdef CONFIG_X86_32
-extern unsigned long kernel_stack_pointer(struct pt_regs *regs);
-#else
 static inline unsigned long kernel_stack_pointer(struct pt_regs *regs)
 {
        return regs->sp;
 }
-#endif
 
 static inline unsigned long instruction_pointer(struct pt_regs *regs)
 {
@@ -221,14 +216,6 @@ static inline unsigned long regs_get_register(struct pt_regs *regs,
        if (unlikely(offset > MAX_REG_OFFSET))
                return 0;
 #ifdef CONFIG_X86_32
-       /*
-        * Traps from the kernel do not save sp and ss.
-        * Use the helper function to retrieve sp.
-        */
-       if (offset == offsetof(struct pt_regs, sp) &&
-           regs->cs == __KERNEL_CS)
-               return kernel_stack_pointer(regs);
-
        /* The selector fields are 16-bit. */
        if (offset == offsetof(struct pt_regs, cs) ||
            offset == offsetof(struct pt_regs, ss) ||
@@ -254,8 +241,7 @@ static inline unsigned long regs_get_register(struct pt_regs *regs,
 static inline int regs_within_kernel_stack(struct pt_regs *regs,
                                           unsigned long addr)
 {
-       return ((addr & ~(THREAD_SIZE - 1))  ==
-               (kernel_stack_pointer(regs) & ~(THREAD_SIZE - 1)));
+       return ((addr & ~(THREAD_SIZE - 1)) == (regs->sp & ~(THREAD_SIZE - 1)));
 }
 
 /**
@@ -269,7 +255,7 @@ static inline int regs_within_kernel_stack(struct pt_regs *regs,
  */
 static inline unsigned long *regs_get_kernel_stack_nth_addr(struct pt_regs *regs, unsigned int n)
 {
-       unsigned long *addr = (unsigned long *)kernel_stack_pointer(regs);
+       unsigned long *addr = (unsigned long *)regs->sp;
 
        addr += n;
        if (regs_within_kernel_stack(regs, (unsigned long)addr))