powerpc/476: Workaround for DD1.1: Issue lwsync after mtpid

From: Dave Kleikamp <sha...@linux.vnet.ibm.com>

Signed-off-by: Dave Kleikamp <sha...@linux.vnet.ibm.com>
---

 arch/powerpc/include/asm/asm-compat.h |    2 ++
 arch/powerpc/kernel/head_44x.S        |    1 +
 2 files changed, 3 insertions(+), 0 deletions(-)


diff --git a/arch/powerpc/include/asm/asm-compat.h 
b/arch/powerpc/include/asm/asm-compat.h
index 1890fbf..fd16e3a 100644
--- a/arch/powerpc/include/asm/asm-compat.h
+++ b/arch/powerpc/include/asm/asm-compat.h
@@ -70,12 +70,14 @@
        BEGIN_FTR_SECTION;                      \
                lwsync;                         \
        END_FTR_SECTION_IFSET(CPU_FTR_476_DD1_1)
+#define PPC476_ERR_MTPID PPC476_ERR_DCBx
 #define PPC476_ERR_ISYNC()                     \
        BEGIN_FTR_SECTION;                      \
                isync;                          \
        END_FTR_SECTION_IFSET(CPU_FTR_476_DD1_1)
 #else  /* ! CONFIG_PPC_47x */
 #define PPC476_ERR_DCBx()
+#define PPC476_ERR_MTPID()
 #define PPC476_ERR_ISYNC()
 #endif /* CONFIG_PPC_47x */
 
diff --git a/arch/powerpc/kernel/head_44x.S b/arch/powerpc/kernel/head_44x.S
index a96796d..c27b0cd 100644
--- a/arch/powerpc/kernel/head_44x.S
+++ b/arch/powerpc/kernel/head_44x.S
@@ -705,6 +705,7 @@ _GLOBAL(set_context)
        stw     r4, 0x4(r5)
 #endif
        mtspr   SPRN_PID,r3
+       PPC476_ERR_MTPID()
        isync                   /* Force context change */
        blr
 

-- 
Dave Kleikamp
IBM Linux Technology Center
_______________________________________________
Linuxppc-dev mailing list
Linuxppc-dev@lists.ozlabs.org
https://lists.ozlabs.org/listinfo/linuxppc-dev

Reply via email to