OSDN Git Service

KVM: PPC: Book3S HV: Fix regression on big endian hosts
authorMarcus Comstedt <marcus@mc.pp.se>
Sun, 15 Dec 2019 09:49:00 +0000 (10:49 +0100)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 17 Dec 2019 04:09:08 +0000 (15:09 +1100)
commit228b607d8ea1b7d4561945058d5692709099d432
tree07461f439440d69a0bda5f901941f584595229d9
parent61e3acd8c693a14fc69b824cb5b08d02cb90a6e7
KVM: PPC: Book3S HV: Fix regression on big endian hosts

VCPU_CR is the offset of arch.regs.ccr in kvm_vcpu.
arch/powerpc/include/asm/kvm_host.h defines arch.regs as a struct
pt_regs, and arch/powerpc/include/asm/ptrace.h defines the ccr field
of pt_regs as "unsigned long ccr".  Since unsigned long is 64 bits, a
64-bit load needs to be used to load it, unless an endianness specific
correction offset is added to access the desired subpart.  In this
case there is no reason to _not_ use a 64 bit load though.

Fixes: 6c85b7bc637b ("powerpc/kvm: Use UV_RETURN ucall to return to ultravisor")
Cc: stable@vger.kernel.org # v5.4+
Signed-off-by: Marcus Comstedt <marcus@mc.pp.se>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20191215094900.46740-1-marcus@mc.pp.se
arch/powerpc/kvm/book3s_hv_rmhandlers.S