summaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/traps.c
diff options
context:
space:
mode:
authorPaul Mundt <lethal@linux-sh.org>2006-09-27 18:22:14 +0900
committerPaul Mundt <lethal@linux-sh.org>2006-09-27 18:22:14 +0900
commita6a31139897a5e539efe7ad3b7bd351fa9673ce8 (patch)
tree6e2ad11d93ab95214694038080c79284c6da30d6 /arch/sh/kernel/traps.c
parent2cb7ce3bb384f30a377f66336c78546b834604df (diff)
downloadlinux-a6a31139897a5e539efe7ad3b7bd351fa9673ce8.tar.bz2
sh: Add support for 4K stacks.
This enables support for 4K stacks on SH. Currently this depends on DEBUG_KERNEL, but likely all boards will switch to this as the default in the future. Signed-off-by: Paul Mundt <lethal@linux-sh.org>
Diffstat (limited to 'arch/sh/kernel/traps.c')
-rw-r--r--arch/sh/kernel/traps.c18
1 files changed, 5 insertions, 13 deletions
diff --git a/arch/sh/kernel/traps.c b/arch/sh/kernel/traps.c
index 95c810b3c97e..c2c597e09482 100644
--- a/arch/sh/kernel/traps.c
+++ b/arch/sh/kernel/traps.c
@@ -741,20 +741,12 @@ void show_stack(struct task_struct *tsk, unsigned long *sp)
unsigned long module_end = VMALLOC_END;
int i = 1;
- if (tsk && !sp) {
+ if (!tsk)
+ tsk = current;
+ if (tsk == current)
+ sp = (unsigned long *)current_stack_pointer;
+ else
sp = (unsigned long *)tsk->thread.sp;
- }
-
- if (!sp) {
- __asm__ __volatile__ (
- "mov r15, %0\n\t"
- "stc r7_bank, %1\n\t"
- : "=r" (module_start),
- "=r" (module_end)
- );
-
- sp = (unsigned long *)module_start;
- }
stack = sp;