aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sh/kernel/process_64.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-14 21:29:06 -0800
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2008-02-14 21:29:06 -0800
commit11d64be6a631236b3b3d21711c7d1a83d9f85904 (patch)
treeddd4d2444ff79cc9866d30c35c16f75e0c6ce16d /arch/sh/kernel/process_64.c
parentMerge git://git.kernel.org/pub/scm/linux/kernel/git/tglx/linux-2.6-hrt (diff)
parentsh: Fix multiple UTLB hit on UP SH-4. (diff)
downloadlinux-dev-11d64be6a631236b3b3d21711c7d1a83d9f85904.tar.xz
linux-dev-11d64be6a631236b3b3d21711c7d1a83d9f85904.zip
Merge git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6
* git://git.kernel.org/pub/scm/linux/kernel/git/lethal/sh-2.6: (46 commits) sh: Fix multiple UTLB hit on UP SH-4. sh: fix pci io access for r2d boards sh: fix ioreadN_rep and iowriteN_rep sh: use ctrl_in/out for on chip pci access sh: Kill off more dead symbols. sh: __uncached_start only on sh32. sh: asm/irq.h needs asm/cpu/irq.h. serial: sh-sci: Fix up SH-5 build. sh: Get SH-5 caches working again post-unification. maple: Fix up maple build failure. sh: Kill off bogus SH_SDK7780_STANDALONE symbol. sh: asm/tlb.h needs linux/pagemap.h for CONFIG_SWAP=n. sh: Tidy include/asm-sh/hp6xx.h maple: improve detection of attached peripherals sh: Shut up some trivial build warnings. sh: Update SH-5 flush_cache_sigtramp() for API changes. sh: Fix up set_fixmap_nocache() for SH-5. sh: Fix up pte_mkhuge() build breakage for SH-5. sh: Disable big endian for SH-5. sh: Handle SH7366 CPU in check_bugs(). ...
Diffstat (limited to 'arch/sh/kernel/process_64.c')
-rw-r--r--arch/sh/kernel/process_64.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/arch/sh/kernel/process_64.c b/arch/sh/kernel/process_64.c
index cff3b7dc9c56..046999b1d1af 100644
--- a/arch/sh/kernel/process_64.c
+++ b/arch/sh/kernel/process_64.c
@@ -623,6 +623,7 @@ extern void interruptible_sleep_on(wait_queue_head_t *q);
#define mid_sched ((unsigned long) interruptible_sleep_on)
+#ifdef CONFIG_FRAME_POINTER
static int in_sh64_switch_to(unsigned long pc)
{
extern char __sh64_switch_to_end;
@@ -631,12 +632,10 @@ static int in_sh64_switch_to(unsigned long pc)
return (pc >= (unsigned long) sh64_switch_to) &&
(pc < (unsigned long) &__sh64_switch_to_end);
}
+#endif
unsigned long get_wchan(struct task_struct *p)
{
- unsigned long schedule_fp;
- unsigned long sh64_switch_to_fp;
- unsigned long schedule_caller_pc;
unsigned long pc;
if (!p || p == current || p->state == TASK_RUNNING)
@@ -649,6 +648,10 @@ unsigned long get_wchan(struct task_struct *p)
#ifdef CONFIG_FRAME_POINTER
if (in_sh64_switch_to(pc)) {
+ unsigned long schedule_fp;
+ unsigned long sh64_switch_to_fp;
+ unsigned long schedule_caller_pc;
+
sh64_switch_to_fp = (long) p->thread.sp;
/* r14 is saved at offset 4 in the sh64_switch_to frame */
schedule_fp = *(unsigned long *) (long)(sh64_switch_to_fp + 4);