summaryrefslogtreecommitdiffstats
path: root/arch/arm/kvm/coproc.c
diff options
context:
space:
mode:
authorJonathan Austin <jonathan.austin@arm.com>2013-09-26 17:49:26 +0200
committerChristoffer Dall <christoffer.dall@linaro.org>2013-10-13 02:44:39 +0200
commit5e497046f005528464f9600a4ee04f49df713596 (patch)
treed82a1518b583953f5f34c7b824c851ae5c57830b /arch/arm/kvm/coproc.c
parentKVM: ARM: Fix calculation of virtual CPU ID (diff)
downloadlinux-5e497046f005528464f9600a4ee04f49df713596.tar.xz
linux-5e497046f005528464f9600a4ee04f49df713596.zip
KVM: ARM: fix the size of TTBCR_{T0SZ,T1SZ} masks
The T{0,1}SZ fields of TTBCR are 3 bits wide when using the long descriptor format. Likewise, the T0SZ field of the HTCR is 3-bits. KVM currently defines TTBCR_T{0,1}SZ as 3, not 7. The T0SZ mask is used to calculate the value for the HTCR, both to pick out TTBCR.T0SZ and mask off the equivalent field in the HTCR during read-modify-write. The incorrect mask size causes the (UNKNOWN) reset value of HTCR.T0SZ to leak in to the calculated HTCR value. Linux will hang when initializing KVM if HTCR's reset value has bit 2 set (sometimes the case on A7/TC2) Fixing T0SZ allows A7 cores to boot and T1SZ is also fixed for completeness. Signed-off-by: Jonathan Austin <jonathan.austin@arm.com> Acked-by: Marc Zyngier <marc.zyngier@arm.com> Signed-off-by: Christoffer Dall <christoffer.dall@linaro.org>
Diffstat (limited to 'arch/arm/kvm/coproc.c')
0 files changed, 0 insertions, 0 deletions