powerpc/476: Add isync after loading mmu and debug spr's
authorDave Kleikamp <shaggy@linux.vnet.ibm.com>
Fri, 5 Mar 2010 10:43:24 +0000 (10:43 +0000)
committerJosh Boyer <jwboyer@linux.vnet.ibm.com>
Wed, 5 May 2010 14:39:13 +0000 (10:39 -0400)
476 requires an isync after loading MMU and debug related SPR's.  Some of
these are in performance-critical paths and may need to be optimized, but
initially, we're playing it safe.

Signed-off-by: Torez Smith <lnxtorez@linux.vnet.ibm.com>
Signed-off-by: Dave Kleikamp <shaggy@linux.vnet.ibm.com>
Signed-off-by: Josh Boyer <jwboyer@linux.vnet.ibm.com>
arch/powerpc/kernel/kprobes.c
arch/powerpc/kernel/process.c

index b36f074..c533525 100644 (file)
@@ -114,6 +114,9 @@ static void __kprobes prepare_singlestep(struct kprobe *p, struct pt_regs *regs)
 #ifdef CONFIG_PPC_ADV_DEBUG_REGS
        regs->msr &= ~MSR_CE;
        mtspr(SPRN_DBCR0, mfspr(SPRN_DBCR0) | DBCR0_IC | DBCR0_IDM);
+#ifdef CONFIG_PPC_47x
+       isync();
+#endif
 #endif
 
        /*
index e4d71ce..9d255b4 100644 (file)
@@ -371,6 +371,9 @@ int set_dabr(unsigned long dabr)
        /* XXX should we have a CPU_FTR_HAS_DABR ? */
 #ifdef CONFIG_PPC_ADV_DEBUG_REGS
        mtspr(SPRN_DAC1, dabr);
+#ifdef CONFIG_PPC_47x
+       isync();
+#endif
 #elif defined(CONFIG_PPC_BOOK3S)
        mtspr(SPRN_DABR, dabr);
 #endif