On Wed, Feb 09, 2005 at 09:06:42AM +0100, Rojhalat Ibrahim wrote: > Ok, thanks. If I can try anything that might help track down > the problem, please let me know. Try this patch which is meant to be used in combination with the previous patch. It 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. Thanks, Ralf c-r4k.c | 14 +++++++------- 1 files changed, 7 insertions(+), 7 deletions(-) Index: linux-sgi-ip27-ua/arch/mips/mm/c-r4k.c =================================================================== --- linux-sgi-ip27-ua.orig/arch/mips/mm/c-r4k.c 2005-02-10 14:25:54.935572026 +0100 +++ linux-sgi-ip27-ua/arch/mips/mm/c-r4k.c 2005-02-10 14:28:02.329527242 +0100 @@ -376,6 +376,13 @@ pmd_t *pmdp; pte_t *ptep; + /* + * If ownes no valid ASID yet, cannot possibly have gotten + * this page into the cache. + */ + if (cpu_context(smp_processor_id(), vma->vm_mm) == 0) + return; + page &= PAGE_MASK; pgdp = pgd_offset(mm, page); pudp = pud_offset(pgdp, page); @@ -433,13 +440,6 @@ { struct flush_cache_page_args args; - /* - * If ownes no valid ASID yet, cannot possibly have gotten - * this page into the cache. - */ - if (cpu_context(smp_processor_id(), vma->vm_mm) == 0) - return; - args.vma = vma; args.page = page;