提交 c64ac9f0 编写于 作者: D David McCullough 提交者: Paul Mundt

sh: fix get_wchan() for SH kernels without framepointers

Do not follow the frame pointers (/proc/X/task/1/stat) unless we were
compiled with them.
Signed-off-by: NDavid McCullough <david_mccullough@au.securecomputing.com>
Signed-off-by: NPaul Mundt <lethal@linux-sh.org>
上级 1f25756a
......@@ -474,7 +474,6 @@ asmlinkage int sys_execve(char __user *ufilename, char __user * __user *uargv,
unsigned long get_wchan(struct task_struct *p)
{
unsigned long schedule_frame;
unsigned long pc;
if (!p || p == current || p->state == TASK_RUNNING)
......@@ -484,10 +483,13 @@ unsigned long get_wchan(struct task_struct *p)
* The same comment as on the Alpha applies here, too ...
*/
pc = thread_saved_pc(p);
#ifdef CONFIG_FRAME_POINTER
if (in_sched_functions(pc)) {
schedule_frame = (unsigned long)p->thread.sp;
unsigned long schedule_frame = (unsigned long)p->thread.sp;
return ((unsigned long *)schedule_frame)[21];
}
#endif
return pc;
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册