From: Mark Fortescue This deals with a sun4c issue caused by commit b6a2fea39318e43fee84fa7b0b90d68bed92d2ba: mm: variable length argument support. The new way the code works means that sun4c_update_mmu_cache gets called before a context has been selected, which results in invalid operation of the underling mm code. Simply ignoring update requests when there is no valid context solves the problem. Signed-off-by Mark Fortescue --- This worked better than the alternative of setting up a context to work with. I definatly need to spend some time writting up the sun4c MMU and how Linux code uses it. diff -ruNpd -x '.[a-z]*' linux-2.6/arch/sparc/mm/sun4c.c linux-test/arch/sparc/mm/sun4c.c --- linux-2.6/arch/sparc/mm/sun4c.c 2007-07-30 03:19:15.000000000 +0100 +++ linux-test/arch/sparc/mm/sun4c.c 2007-07-31 08:28:13.000000000 +0100 @@ -1999,6 +2029,9 @@ void sun4c_update_mmu_cache(struct vm_ar unsigned long flags; int pseg; + if (vma->vm_mm->context == NO_CONTEXT) + return; + local_irq_save(flags); address &= PAGE_MASK; if ((pseg = sun4c_get_segmap(address)) == invalid_segment) {