mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-27 19:29:37 +00:00
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:
parent
1f25756a11
commit
c64ac9f058
1 changed files with 4 additions and 2 deletions
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue