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: David McCullough <david_mccullough@au.securecomputing.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
David McCullough 2007-07-26 17:46:07 +09:00 committed by Paul Mundt
parent 1f25756a11
commit c64ac9f058

View file

@ -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;
}