patch-2.3.30 linux/arch/ppc/kernel/process.c

Next file: linux/arch/ppc/kernel/prom.c
Previous file: linux/arch/ppc/kernel/prep_setup.c
Back to the patch index
Back to the overall index

diff -u --recursive --new-file v2.3.29/linux/arch/ppc/kernel/process.c linux/arch/ppc/kernel/process.c
@@ -204,9 +204,15 @@
 	if ( (prev->thread.regs && (prev->thread.regs->msr & MSR_VEC)) &&
 	     prev->thread.vrsave )
 		giveup_altivec(prev);
-	if ( (new->last_processor != NO_PROC_ID) &&
+	/*
+	 * The 750 doesn't broadcast invalidates with tlbie's
+	 * so flush every processor switch.
+	 *  -- Cort
+	 */
+	if ( ((_get_PVR()>>16) == 8) &&
+	     (new->last_processor != NO_PROC_ID) &&
 	     (new->last_processor != new->processor) && new->mm )
-		flush_tlb_mm(new->mm);
+	     flush_tlb_mm(new->mm);
 	prev->last_processor = prev->processor;
 	current_set[smp_processor_id()] = new;
 #endif /* __SMP__ */

FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)