Commit 046a48b3 authored by Liu Yu's avatar Liu Yu Committed by Avi Kivity

KVM: ppc: e500: Fix the bug that KVM is unstable in SMP

TLB entry should enable memory coherence in SMP.

And like commit 631fba9dd3aca519355322cef035730609e91593,
remove guard attribute to enable the prefetch of guest memory.
Signed-off-by: default avatarLiu Yu <yu.liu@freescale.com>
Signed-off-by: default avatarAvi Kivity <avi@redhat.com>
parent bc35cbc8
...@@ -99,7 +99,11 @@ static inline u32 e500_shadow_mas3_attrib(u32 mas3, int usermode) ...@@ -99,7 +99,11 @@ static inline u32 e500_shadow_mas3_attrib(u32 mas3, int usermode)
static inline u32 e500_shadow_mas2_attrib(u32 mas2, int usermode) static inline u32 e500_shadow_mas2_attrib(u32 mas2, int usermode)
{ {
#ifdef CONFIG_SMP
return (mas2 & MAS2_ATTRIB_MASK) | MAS2_M;
#else
return mas2 & MAS2_ATTRIB_MASK; return mas2 & MAS2_ATTRIB_MASK;
#endif
} }
/* /*
......
...@@ -38,7 +38,7 @@ ...@@ -38,7 +38,7 @@
#define E500_TLB_USER_PERM_MASK (MAS3_UX|MAS3_UR|MAS3_UW) #define E500_TLB_USER_PERM_MASK (MAS3_UX|MAS3_UR|MAS3_UW)
#define E500_TLB_SUPER_PERM_MASK (MAS3_SX|MAS3_SR|MAS3_SW) #define E500_TLB_SUPER_PERM_MASK (MAS3_SX|MAS3_SR|MAS3_SW)
#define MAS2_ATTRIB_MASK \ #define MAS2_ATTRIB_MASK \
(MAS2_X0 | MAS2_X1 | MAS2_W | MAS2_I | MAS2_M | MAS2_G | MAS2_E) (MAS2_X0 | MAS2_X1)
#define MAS3_ATTRIB_MASK \ #define MAS3_ATTRIB_MASK \
(MAS3_U0 | MAS3_U1 | MAS3_U2 | MAS3_U3 \ (MAS3_U0 | MAS3_U1 | MAS3_U2 | MAS3_U3 \
| E500_TLB_USER_PERM_MASK | E500_TLB_SUPER_PERM_MASK) | E500_TLB_USER_PERM_MASK | E500_TLB_SUPER_PERM_MASK)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment