KVM: PPC: Book3S HV: Make xive_pushed a byte, not a word
authorBenjamin Herrenschmidt <benh@kernel.crashing.org>
Fri, 12 Jan 2018 02:37:15 +0000 (13:37 +1100)
committerPaul Mackerras <paulus@ozlabs.org>
Fri, 19 Jan 2018 01:10:21 +0000 (12:10 +1100)
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
Signed-off-by: Paul Mackerras <paulus@ozlabs.org>
arch/powerpc/include/asm/kvm_host.h
arch/powerpc/kvm/book3s_hv_rmhandlers.S

index bfe51356af5e161cb67b006dbed1cfa5123ad0e5..0c44fa67608d95385e157d56be3b210613e12e23 100644 (file)
@@ -739,7 +739,7 @@ struct kvm_vcpu_arch {
        struct kvmppc_icp *icp; /* XICS presentation controller */
        struct kvmppc_xive_vcpu *xive_vcpu; /* XIVE virtual CPU data */
        __be32 xive_cam_word;    /* Cooked W2 in proper endian with valid bit */
-       u32 xive_pushed;         /* Is the VP pushed on the physical CPU ? */
+       u8 xive_pushed;          /* Is the VP pushed on the physical CPU ? */
        union xive_tma_w01 xive_saved_state; /* W0..1 of XIVE thread state */
 #endif
 
index 948f21cf84d56974c7f9d7848f9a3a0690e51771..a7f429bc6de07704af40a3a804e472627866fdf4 100644 (file)
@@ -1033,7 +1033,7 @@ ALT_FTR_SECTION_END_IFCLR(CPU_FTR_ARCH_300)
        li      r9, TM_QW1_OS + TM_WORD2
        stwcix  r11,r9,r10
        li      r9, 1
-       stw     r9, VCPU_XIVE_PUSHED(r4)
+       stb     r9, VCPU_XIVE_PUSHED(r4)
        eieio
 
        /*
@@ -1458,7 +1458,7 @@ mc_cont:
 #endif
 #ifdef CONFIG_KVM_XICS
        /* We are exiting, pull the VP from the XIVE */
-       lwz     r0, VCPU_XIVE_PUSHED(r9)
+       lbz     r0, VCPU_XIVE_PUSHED(r9)
        cmpwi   cr0, r0, 0
        beq     1f
        li      r7, TM_SPC_PULL_OS_CTX
@@ -1487,7 +1487,7 @@ mc_cont:
        /* Fixup some of the state for the next load */
        li      r10, 0
        li      r0, 0xff
-       stw     r10, VCPU_XIVE_PUSHED(r9)
+       stb     r10, VCPU_XIVE_PUSHED(r9)
        stb     r10, (VCPU_XIVE_SAVED_STATE+3)(r9)
        stb     r0, (VCPU_XIVE_SAVED_STATE+4)(r9)
        eieio