···191extern void show_trace(struct task_struct *task, unsigned long *sp);192193unsigned long get_wchan(struct task_struct *p);194-#define __KSTK_PTREGS(tsk) ((struct pt_regs *) \195- ((unsigned long) tsk->thread_info + THREAD_SIZE - sizeof(struct pt_regs)))196-#define KSTK_EIP(tsk) (__KSTK_PTREGS(tsk)->psw.addr)197-#define KSTK_ESP(tsk) (__KSTK_PTREGS(tsk)->gprs[15])198199/*200 * Give up the time slice of the virtual PU.
···191extern void show_trace(struct task_struct *task, unsigned long *sp);192193unsigned long get_wchan(struct task_struct *p);194+#define task_pt_regs(tsk) ((struct pt_regs *) \195+ ((void *)(tsk)->thread_info + THREAD_SIZE) - 1)196+#define KSTK_EIP(tsk) (task_pt_regs(tsk)->psw.addr)197+#define KSTK_ESP(tsk) (task_pt_regs(tsk)->gprs[15])198199/*200 * Give up the time slice of the virtual PU.