diff options
author | Atsushi Nemoto <anemo@mba.ocn.ne.jp> | 2006-08-22 08:15:47 -0400 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2006-11-29 20:14:48 -0500 |
commit | 0550d9d13e02b30efa117d47fcadea450bb23d23 (patch) | |
tree | 5bfdbe50ebd06b2215fbad9388586bd4106861ec /arch | |
parent | e56798824456bd907cefe840ca127df0518942e3 (diff) |
[MIPS] Remove redundant r4k_blast_icache() calls
r4k_flush_cache_all() and r4k_flush_cache_mm() case: these are noop if
the CPU did not have dc_aliases. It would mean we do not need to care
about icache here.
r4k_flush_cache_range case: if r4k_flush_cache_mm() did not need to
care about icache, it would be same for this function.
Signed-off-by: Atsushi Nemoto <anemo@mba.ocn.ne.jp>
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/mips/mm/c-r4k.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c index cc895dad71d2..0138cb2e456d 100644 --- a/arch/mips/mm/c-r4k.c +++ b/arch/mips/mm/c-r4k.c | |||
@@ -323,7 +323,6 @@ static void __init r4k_blast_scache_setup(void) | |||
323 | static inline void local_r4k_flush_cache_all(void * args) | 323 | static inline void local_r4k_flush_cache_all(void * args) |
324 | { | 324 | { |
325 | r4k_blast_dcache(); | 325 | r4k_blast_dcache(); |
326 | r4k_blast_icache(); | ||
327 | } | 326 | } |
328 | 327 | ||
329 | static void r4k_flush_cache_all(void) | 328 | static void r4k_flush_cache_all(void) |
@@ -359,21 +358,19 @@ static void r4k___flush_cache_all(void) | |||
359 | static inline void local_r4k_flush_cache_range(void * args) | 358 | static inline void local_r4k_flush_cache_range(void * args) |
360 | { | 359 | { |
361 | struct vm_area_struct *vma = args; | 360 | struct vm_area_struct *vma = args; |
362 | int exec; | ||
363 | 361 | ||
364 | if (!(cpu_context(smp_processor_id(), vma->vm_mm))) | 362 | if (!(cpu_context(smp_processor_id(), vma->vm_mm))) |
365 | return; | 363 | return; |
366 | 364 | ||
367 | exec = vma->vm_flags & VM_EXEC; | 365 | r4k_blast_dcache(); |
368 | if (cpu_has_dc_aliases || exec) | ||
369 | r4k_blast_dcache(); | ||
370 | if (exec) | ||
371 | r4k_blast_icache(); | ||
372 | } | 366 | } |
373 | 367 | ||
374 | static void r4k_flush_cache_range(struct vm_area_struct *vma, | 368 | static void r4k_flush_cache_range(struct vm_area_struct *vma, |
375 | unsigned long start, unsigned long end) | 369 | unsigned long start, unsigned long end) |
376 | { | 370 | { |
371 | if (!cpu_has_dc_aliases) | ||
372 | return; | ||
373 | |||
377 | r4k_on_each_cpu(local_r4k_flush_cache_range, vma, 1, 1); | 374 | r4k_on_each_cpu(local_r4k_flush_cache_range, vma, 1, 1); |
378 | } | 375 | } |
379 | 376 | ||
@@ -385,7 +382,6 @@ static inline void local_r4k_flush_cache_mm(void * args) | |||
385 | return; | 382 | return; |
386 | 383 | ||
387 | r4k_blast_dcache(); | 384 | r4k_blast_dcache(); |
388 | r4k_blast_icache(); | ||
389 | 385 | ||
390 | /* | 386 | /* |
391 | * Kludge alert. For obscure reasons R4000SC and R4400SC go nuts if we | 387 | * Kludge alert. For obscure reasons R4000SC and R4400SC go nuts if we |