KVM: PPC: Book3S: correct width in XER handling
authorSam bobroff <sam.bobroff@au1.ibm.com>
Tue, 26 May 2015 23:56:57 +0000 (09:56 +1000)
committerAlexander Graf <agraf@suse.de>
Sat, 22 Aug 2015 09:16:19 +0000 (11:16 +0200)
commitc63517c2e3810071359af926f621c1f784388c3f
tree7687ac199f73c810ffc480b274941b77eff8fab3
parent563a1e93afac4d2c135072461fbab418b9dff43f
KVM: PPC: Book3S: correct width in XER handling

In 64 bit kernels, the Fixed Point Exception Register (XER) is a 64
bit field (e.g. in kvm_regs and kvm_vcpu_arch) and in most places it is
accessed as such.

This patch corrects places where it is accessed as a 32 bit field by a
64 bit kernel.  In some cases this is via a 32 bit load or store
instruction which, depending on endianness, will cause either the
lower or upper 32 bits to be missed.  In another case it is cast as a
u32, causing the upper 32 bits to be cleared.

This patch corrects those places by extending the access methods to
64 bits.

Signed-off-by: Sam Bobroff <sam.bobroff@au1.ibm.com>
Reviewed-by: Laurent Vivier <lvivier@redhat.com>
Reviewed-by: Thomas Huth <thuth@redhat.com>
Tested-by: Thomas Huth <thuth@redhat.com>
Signed-off-by: Alexander Graf <agraf@suse.de>
arch/powerpc/include/asm/kvm_book3s.h
arch/powerpc/include/asm/kvm_book3s_asm.h
arch/powerpc/include/asm/kvm_booke.h
arch/powerpc/kvm/book3s_hv_rmhandlers.S
arch/powerpc/kvm/book3s_segment.S