new helper: current_pt_regs()
authorAl Viro <viro@zeniv.linux.org.uk>
Sun, 30 Sep 2012 17:12:36 +0000 (13:12 -0400)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 30 Sep 2012 17:36:39 +0000 (13:36 -0400)
Normally (and that's the default) it's just task_pt_regs(current).
However, if an architecture can optimize that, it can do so by
making a macro of its own available from asm/ptrace.h.  More
importantly, some architectures have task_pt_regs() working only
for traced tasks blocked on signal delivery.  current_pt_regs()
needs to work for *all* processes, so before those architectures
start using stuff relying on current_pt_regs() they'll need a
properly working variant.

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
include/linux/ptrace.h

index 597e4fdb97fe4d676b5fa0b717ae53f023893e5e..07fd922d69281de5b366603e5b7b6f447c669ef8 100644 (file)
@@ -403,6 +403,10 @@ static inline void user_single_step_siginfo(struct task_struct *tsk,
 #define arch_ptrace_stop(code, info)           do { } while (0)
 #endif
 
+#ifndef current_pt_regs
+#define current_pt_regs() task_pt_regs(current)
+#endif
+
 extern int task_current_syscall(struct task_struct *target, long *callno,
                                unsigned long args[6], unsigned int maxargs,
                                unsigned long *sp, unsigned long *pc);