sh: __addr_ok() and other misc nommu fixups.
A few more outstanding nommu fixups.. Signed-off-by: Yoshinori Sato <ysato@users.sourceforge.jp> Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
committed by
Paul Mundt
parent
0b8929354c
commit
a2d1a5fae6
@@ -302,9 +302,11 @@ ubc_set_tracing(int asid, unsigned long pc)
|
||||
{
|
||||
ctrl_outl(pc, UBC_BARA);
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
/* We don't have any ASID settings for the SH-2! */
|
||||
if (cpu_data->type != CPU_SH7604)
|
||||
ctrl_outb(asid, UBC_BASRA);
|
||||
#endif
|
||||
|
||||
ctrl_outl(0, UBC_BAMRA);
|
||||
|
||||
@@ -347,6 +349,7 @@ struct task_struct *__switch_to(struct task_struct *prev, struct task_struct *ne
|
||||
}
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
/*
|
||||
* Restore the kernel mode register
|
||||
* k7 (r7_bank1)
|
||||
@@ -354,19 +357,21 @@ struct task_struct *__switch_to(struct task_struct *prev, struct task_struct *ne
|
||||
asm volatile("ldc %0, r7_bank"
|
||||
: /* no output */
|
||||
: "r" (task_thread_info(next)));
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_MMU
|
||||
/* If no tasks are using the UBC, we're done */
|
||||
if (ubc_usercnt == 0)
|
||||
/* If no tasks are using the UBC, we're done */;
|
||||
else if (next->thread.ubc_pc && next->mm) {
|
||||
ubc_set_tracing(next->mm->context & MMU_CONTEXT_ASID_MASK,
|
||||
next->thread.ubc_pc);
|
||||
int asid = 0;
|
||||
#ifdef CONFIG_MMU
|
||||
asid |= next->mm->context & MMU_CONTEXT_ASID_MASK;
|
||||
#endif
|
||||
ubc_set_tracing(asid, next->thread.ubc_pc);
|
||||
} else {
|
||||
ctrl_outw(0, UBC_BBRA);
|
||||
ctrl_outw(0, UBC_BBRB);
|
||||
}
|
||||
#endif
|
||||
|
||||
return prev;
|
||||
}
|
||||
|
@@ -79,20 +79,18 @@ EXPORT_SYMBOL(strcpy);
|
||||
DECLARE_EXPORT(__movstr_i4_even);
|
||||
DECLARE_EXPORT(__movstr_i4_odd);
|
||||
DECLARE_EXPORT(__movstrSI12_i4);
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_CPU_SH4) || defined(CONFIG_SH7705_CACHE_32KB)
|
||||
/* needed by some modules */
|
||||
EXPORT_SYMBOL(flush_cache_all);
|
||||
EXPORT_SYMBOL(flush_cache_range);
|
||||
EXPORT_SYMBOL(flush_dcache_page);
|
||||
EXPORT_SYMBOL(__flush_purge_region);
|
||||
EXPORT_SYMBOL(clear_user_page);
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_SH7705_CACHE_32KB)
|
||||
EXPORT_SYMBOL(flush_cache_all);
|
||||
EXPORT_SYMBOL(flush_cache_range);
|
||||
EXPORT_SYMBOL(flush_dcache_page);
|
||||
EXPORT_SYMBOL(__flush_purge_region);
|
||||
#ifdef CONFIG_MMU
|
||||
EXPORT_SYMBOL(clear_user_page);
|
||||
#endif
|
||||
|
||||
EXPORT_SYMBOL(flush_tlb_page);
|
||||
|
@@ -44,7 +44,7 @@ asmlinkage int sys_pipe(unsigned long r4, unsigned long r5,
|
||||
return error;
|
||||
}
|
||||
|
||||
#if defined(HAVE_ARCH_UNMAPPED_AREA)
|
||||
#if defined(HAVE_ARCH_UNMAPPED_AREA) && defined(CONFIG_MMU)
|
||||
/*
|
||||
* To avoid cache alias, we map the shard page with same color.
|
||||
*/
|
||||
|
Reference in New Issue
Block a user