sh: KSTK_EIP/KSTK_ESP consistency.
Stuart Menefy [Fri, 24 Nov 2006 03:53:02 +0000 (12:53 +0900)]
Two of the fields in /proc/[number]/stat are documented in
proc(5) as:

      kstkesp %lu
     The current value of esp (stack pointer), as
     found in the kernel stack page for the process.

      kstkeip %lu
     The current EIP (instruction pointer).

The SH currently prints the the last SP and PC of the process
inside the kernel, while most other archs use the last user
space values.

This patch modifes the SH to display the user space values.

Signed-off-by: Stuart Menefy <stuart.menefy@st.com>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>

include/asm-sh/processor.h

index 4a90e7c..6f1dd7c 100644 (file)
@@ -259,8 +259,8 @@ void show_trace(struct task_struct *tsk, unsigned long *sp,
                struct pt_regs *regs);
 extern unsigned long get_wchan(struct task_struct *p);
 
-#define KSTK_EIP(tsk)  ((tsk)->thread.pc)
-#define KSTK_ESP(tsk)  ((tsk)->thread.sp)
+#define KSTK_EIP(tsk)  (task_pt_regs(tsk)->pc)
+#define KSTK_ESP(tsk)  (task_pt_regs(tsk)->regs[15])
 
 #define cpu_sleep()    __asm__ __volatile__ ("sleep" : : : "memory")
 #define cpu_relax()    barrier()