summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorThomas Huth2015-09-02 11:14:48 +0200
committerPaul Mackerras2015-09-03 08:09:09 +0200
commitf35f3a48d6ee810557b58e6b7d933438999401b6 (patch)
tree19e305d21611b85a65697b0b2034181163eed6df
parentKVM: PPC: Book3S HV: Exit on H_DOORBELL if HOST_IPI is set (diff)
downloadkernel-qcow2-linux-f35f3a48d6ee810557b58e6b7d933438999401b6.tar.gz
kernel-qcow2-linux-f35f3a48d6ee810557b58e6b7d933438999401b6.tar.xz
kernel-qcow2-linux-f35f3a48d6ee810557b58e6b7d933438999401b6.zip
KVM: PPC: Book3S: Fix size of the PSPB register
The size of the Problem State Priority Boost Register is only 32 bits, but the kvm_vcpu_arch->pspb variable is declared as "ulong", ie. 64-bit. However, the assembler code accesses this variable with 32-bit accesses, and the KVM_REG_PPC_PSPB macro is defined with SIZE_U32, too, so that the current code is broken on big endian hosts: kvmppc_get_one_reg_hv() will only return zero for this register since it is using the wrong half of the pspb variable. Let's fix this problem by adjusting the size of the pspb field in the kvm_vcpu_arch structure. Signed-off-by: Thomas Huth <thuth@redhat.com> Signed-off-by: Paul Mackerras <paulus@samba.org>
-rw-r--r--arch/powerpc/include/asm/kvm_host.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/powerpc/include/asm/kvm_host.h b/arch/powerpc/include/asm/kvm_host.h
index e187b6a56e7e..98eebbf66340 100644
--- a/arch/powerpc/include/asm/kvm_host.h
+++ b/arch/powerpc/include/asm/kvm_host.h
@@ -486,7 +486,7 @@ struct kvm_vcpu_arch {
ulong ciabr;
ulong cfar;
ulong ppr;
- ulong pspb;
+ u32 pspb;
ulong fscr;
ulong shadow_fscr;
ulong ebbhr;