From: Per Øyvind Karlsen <pkarlsen@xxxxxxxxxxxx> Date: Fri, 28 Apr 2006 00:42:07 +0200 > When running 2.6.17-rc1 or rc2 I seem to get a lot of these oops, not certain > about what exactly causes those, but might seem to happen during a little > load.. > 2.6.16 runs fine without this ever happening. > > Machine is a blade 100.. I did some investigating. Do you have preemption enabled? That's the only way this bug could possibly trigger. Jim reported a nearly identical OOPS to your's and his provided config has preemption enabled. This patch should fix the problem: diff --git a/arch/sparc64/mm/tlb.c b/arch/sparc64/mm/tlb.c index a079cf4..3f10fc9 100644 --- a/arch/sparc64/mm/tlb.c +++ b/arch/sparc64/mm/tlb.c @@ -8,6 +8,7 @@ #include <linux/init.h> #include <linux/percpu.h> #include <linux/mm.h> #include <linux/swap.h> +#include <linux/preempt.h> #include <asm/pgtable.h> #include <asm/pgalloc.h> @@ -24,6 +25,8 @@ void flush_tlb_pending(void) { struct mmu_gather *mp = &__get_cpu_var(mmu_gathers); + preempt_disable(); + if (mp->tlb_nr) { flush_tsb_user(mp); @@ -38,6 +41,8 @@ #endif } mp->tlb_nr = 0; } + + preempt_enable(); } void tlb_batch_add(struct mm_struct *mm, unsigned long vaddr, pte_t *ptep, pte_t orig) - To unsubscribe from this list: send the line "unsubscribe sparclinux" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html