diff options
author | Ralf Baechle <ralf@linux-mips.org> | 2005-02-10 08:54:37 -0500 |
---|---|---|
committer | Ralf Baechle <ralf@linux-mips.org> | 2005-10-29 14:30:31 -0400 |
commit | 79acf83e509dd0ca3db6c747bf58931984abc6e3 (patch) | |
tree | 2c554b18a2e721e387959bbc3212ae72c57298f1 | |
parent | c6e8b587718c486b55c2ebecc6de231a30beba35 (diff) |
Moves a test which determines if we actually need to perform a
cacheflush to the right place. That's a bug which is harmless on UP
but a severe bug on SMP.
Signed-off-by: Ralf Baechle <ralf@linux-mips.org>
-rw-r--r-- | arch/mips/mm/c-r4k.c | 14 |
1 files changed, 7 insertions, 7 deletions
diff --git a/arch/mips/mm/c-r4k.c b/arch/mips/mm/c-r4k.c index b165b73e2583..429167321cfb 100644 --- a/arch/mips/mm/c-r4k.c +++ b/arch/mips/mm/c-r4k.c | |||
@@ -376,6 +376,13 @@ static inline void local_r4k_flush_cache_page(void *args) | |||
376 | pmd_t *pmdp; | 376 | pmd_t *pmdp; |
377 | pte_t *ptep; | 377 | pte_t *ptep; |
378 | 378 | ||
379 | /* | ||
380 | * If ownes no valid ASID yet, cannot possibly have gotten | ||
381 | * this page into the cache. | ||
382 | */ | ||
383 | if (cpu_context(smp_processor_id(), vma->vm_mm) == 0) | ||
384 | return; | ||
385 | |||
379 | page &= PAGE_MASK; | 386 | page &= PAGE_MASK; |
380 | pgdp = pgd_offset(mm, page); | 387 | pgdp = pgd_offset(mm, page); |
381 | pudp = pud_offset(pgdp, page); | 388 | pudp = pud_offset(pgdp, page); |
@@ -432,13 +439,6 @@ static void r4k_flush_cache_page(struct vm_area_struct *vma, unsigned long page, | |||
432 | { | 439 | { |
433 | struct flush_cache_page_args args; | 440 | struct flush_cache_page_args args; |
434 | 441 | ||
435 | /* | ||
436 | * If ownes no valid ASID yet, cannot possibly have gotten | ||
437 | * this page into the cache. | ||
438 | */ | ||
439 | if (cpu_context(smp_processor_id(), vma->vm_mm) == 0) | ||
440 | return; | ||
441 | |||
442 | args.vma = vma; | 442 | args.vma = vma; |
443 | args.page = page; | 443 | args.page = page; |
444 | 444 | ||