sh: Fix get_wchan().

Some time ago the schedule frame size changed and we failed to reflect
this in get_wchan() at the time. This first popped up as a problem on
SH7751R where schedule_frame ended up being unaligned and generating
an unaligned trap. This fixes it up again..

Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
Paul Mundt 2006-12-08 17:46:29 +09:00
parent dc34d312c7
commit b652c23cb0

View File

@ -470,9 +470,10 @@ unsigned long get_wchan(struct task_struct *p)
*/ */
pc = thread_saved_pc(p); pc = thread_saved_pc(p);
if (in_sched_functions(pc)) { if (in_sched_functions(pc)) {
schedule_frame = ((unsigned long *)(long)p->thread.sp)[1]; schedule_frame = (unsigned long)p->thread.sp;
return (unsigned long)((unsigned long *)schedule_frame)[1]; return ((unsigned long *)schedule_frame)[21];
} }
return pc; return pc;
} }