aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/mm/c-r4k.c
diff options
context:
space:
mode:
authorRalf Baechle <ralf@linux-mips.org>2005-02-10 08:54:37 -0500
committerRalf Baechle <ralf@linux-mips.org>2005-10-29 14:30:31 -0400
commit79acf83e509dd0ca3db6c747bf58931984abc6e3 (patch)
tree2c554b18a2e721e387959bbc3212ae72c57298f1 /arch/mips/mm/c-r4k.c
parentc6e8b587718c486b55c2ebecc6de231a30beba35 (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>
Diffstat (limited to 'arch/mips/mm/c-r4k.c')
-rw-r--r--arch/mips/mm/c-r4k.c14
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