mirror of
https://github.com/torvalds/linux
synced 2024-11-05 18:23:50 +00:00
sh: disabled cache handling fix.
Add code to handle the cache disabled case. Fixes breakage introduced by
37443ef3f0
("sh: Migrate SH-4 cacheflush
ops to function pointers."). Without this patch configuring caches off
with CONFIG_CACHE_OFF=y makes kfr2r09 and migo-r lock up in fbdev
deferred io or early user space.
Signed-off-by: Magnus Damm <damm@opensource.se>
Signed-off-by: Paul Mundt <lethal@linux-sh.org>
This commit is contained in:
parent
a7a7c0e1d1
commit
5fb80ae8bd
1 changed files with 10 additions and 0 deletions
|
@ -265,6 +265,8 @@ static void __init emit_cache_params(void)
|
|||
|
||||
void __init cpu_cache_init(void)
|
||||
{
|
||||
unsigned int cache_disabled = !(__raw_readl(CCR) & CCR_CACHE_ENABLE);
|
||||
|
||||
compute_alias(&boot_cpu_data.icache);
|
||||
compute_alias(&boot_cpu_data.dcache);
|
||||
compute_alias(&boot_cpu_data.scache);
|
||||
|
@ -273,6 +275,13 @@ void __init cpu_cache_init(void)
|
|||
__flush_purge_region = noop__flush_region;
|
||||
__flush_invalidate_region = noop__flush_region;
|
||||
|
||||
/*
|
||||
* No flushing is necessary in the disabled cache case so we can
|
||||
* just keep the noop functions in local_flush_..() and __flush_..()
|
||||
*/
|
||||
if (unlikely(cache_disabled))
|
||||
goto skip;
|
||||
|
||||
if (boot_cpu_data.family == CPU_FAMILY_SH2) {
|
||||
extern void __weak sh2_cache_init(void);
|
||||
|
||||
|
@ -312,5 +321,6 @@ void __init cpu_cache_init(void)
|
|||
sh5_cache_init();
|
||||
}
|
||||
|
||||
skip:
|
||||
emit_cache_params();
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue