]> git.baikalelectronics.ru Git - kernel.git/commit
arm64: KVM: Expose sanitised cache type register to guest
authorArd Biesheuvel <ard.biesheuvel@linaro.org>
Thu, 31 Jan 2019 13:17:17 +0000 (14:17 +0100)
committerMarc Zyngier <marc.zyngier@arm.com>
Tue, 19 Feb 2019 21:05:48 +0000 (21:05 +0000)
commit33de1464109c93b74542908cd08662450eb74e6a
treef905ad3b4c33c87154c0c2afbac8a548b0827fec
parent9ac9eac5db6e991746d5d44c1c4176d3d4c09ecd
arm64: KVM: Expose sanitised cache type register to guest

We currently permit CPUs in the same system to deviate in the exact
topology of the caches, and we subsequently hide this fact from user
space by exposing a sanitised value of the cache type register CTR_EL0.

However, guests running under KVM see the bare value of CTR_EL0, which
could potentially result in issues with, e.g., JITs or other pieces of
code that are sensitive to misreported cache line sizes.

So let's start trapping cache ID instructions if there is a mismatch,
and expose the sanitised version of CTR_EL0 to guests. Note that CTR_EL0
is treated as an invariant to KVM user space, so update that part as well.

Acked-by: Christoffer Dall <christoffer.dall@arm.com>
Signed-off-by: Ard Biesheuvel <ard.biesheuvel@linaro.org>
Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
arch/arm64/include/asm/kvm_emulate.h
arch/arm64/include/asm/sysreg.h
arch/arm64/kvm/sys_regs.c