KVM: arm64: CSSELR_EL1 max is 13
authorAndrew Jones <drjones@redhat.com>
Thu, 26 Nov 2020 13:46:40 +0000 (14:46 +0100)
committerMarc Zyngier <maz@kernel.org>
Fri, 27 Nov 2020 19:46:30 +0000 (19:46 +0000)
Not counting TnD, which KVM doesn't currently consider, CSSELR_EL1
can have a maximum value of 0b1101 (13), which corresponds to an
instruction cache at level 7. With CSSELR_MAX set to 12 we can
only select up to cache level 6. Change it to 14.

Signed-off-by: Andrew Jones <drjones@redhat.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20201126134641.35231-2-drjones@redhat.com
arch/arm64/kvm/sys_regs.c

index c1fac98..ef453f7 100644 (file)
@@ -169,7 +169,7 @@ void vcpu_write_sys_reg(struct kvm_vcpu *vcpu, u64 val, int reg)
 static u32 cache_levels;
 
 /* CSSELR values; used to index KVM_REG_ARM_DEMUX_ID_CCSIDR */
-#define CSSELR_MAX 12
+#define CSSELR_MAX 14
 
 /* Which cache CCSIDR represents depends on CSSELR value. */
 static u32 get_ccsidr(u32 csselr)