Sfoglia il codice sorgente

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>
David McCullough 18 anni fa
parent
commit
c64ac9f058
1 ha cambiato i file con 4 aggiunte e 2 eliminazioni
  1. 4 2
      arch/sh/kernel/process.c

+ 4 - 2
arch/sh/kernel/process.c

@@ -474,7 +474,6 @@ out:
 
 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;
 }