|
@@ -989,13 +989,14 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_ARCH_300)
|
|
|
beq no_xive
|
|
|
ld r11, VCPU_XIVE_SAVED_STATE(r4)
|
|
|
li r9, TM_QW1_OS
|
|
|
- stdcix r11,r9,r10
|
|
|
eieio
|
|
|
+ stdcix r11,r9,r10
|
|
|
lwz r11, VCPU_XIVE_CAM_WORD(r4)
|
|
|
li r9, TM_QW1_OS + TM_WORD2
|
|
|
stwcix r11,r9,r10
|
|
|
li r9, 1
|
|
|
stw r9, VCPU_XIVE_PUSHED(r4)
|
|
|
+ eieio
|
|
|
no_xive:
|
|
|
#endif /* CONFIG_KVM_XICS */
|
|
|
|
|
@@ -1401,8 +1402,8 @@ guest_exit_cont: /* r9 = vcpu, r12 = trap, r13 = paca */
|
|
|
cmpldi cr0, r10, 0
|
|
|
beq 1f
|
|
|
/* First load to pull the context, we ignore the value */
|
|
|
- lwzx r11, r7, r10
|
|
|
eieio
|
|
|
+ lwzx r11, r7, r10
|
|
|
/* Second load to recover the context state (Words 0 and 1) */
|
|
|
ldx r11, r6, r10
|
|
|
b 3f
|
|
@@ -1410,8 +1411,8 @@ guest_exit_cont: /* r9 = vcpu, r12 = trap, r13 = paca */
|
|
|
cmpldi cr0, r10, 0
|
|
|
beq 1f
|
|
|
/* First load to pull the context, we ignore the value */
|
|
|
- lwzcix r11, r7, r10
|
|
|
eieio
|
|
|
+ lwzcix r11, r7, r10
|
|
|
/* Second load to recover the context state (Words 0 and 1) */
|
|
|
ldcix r11, r6, r10
|
|
|
3: std r11, VCPU_XIVE_SAVED_STATE(r9)
|
|
@@ -1421,6 +1422,7 @@ guest_exit_cont: /* r9 = vcpu, r12 = trap, r13 = paca */
|
|
|
stw r10, VCPU_XIVE_PUSHED(r9)
|
|
|
stb r10, (VCPU_XIVE_SAVED_STATE+3)(r9)
|
|
|
stb r0, (VCPU_XIVE_SAVED_STATE+4)(r9)
|
|
|
+ eieio
|
|
|
1:
|
|
|
#endif /* CONFIG_KVM_XICS */
|
|
|
/* Save more register state */
|