KVM: arm64: Don't print warning when trapping SPE registers
authorAlexandru Elisei <alexandru.elisei@arm.com>
Fri, 9 Apr 2021 15:21:53 +0000 (16:21 +0100)
committerMarc Zyngier <maz@kernel.org>
Sun, 11 Apr 2021 08:46:12 +0000 (09:46 +0100)
commit13611bc80d3da162aaf32b01ceffc804e027d406
treee7b202b508ffd2fc87b7811adc13497c6fa2d44f
parent263d6287da1433aba11c5b4046388f2cdf49675c
KVM: arm64: Don't print warning when trapping SPE registers

KVM sets up MDCR_EL2 to trap accesses to the SPE buffer and sampling
control registers and it relies on the fact that KVM injects an undefined
exception for unknown registers. This mechanism of injecting undefined
exceptions also prints a warning message for the host kernel; for example,
when a guest tries to access PMSIDR_EL1:

[    2.691830] kvm [142]: Unsupported guest sys_reg access at: 80009e78 [800003c5]
[    2.691830]  { Op0( 3), Op1( 0), CRn( 9), CRm( 9), Op2( 7), func_read },

This is unnecessary, because KVM has explicitly configured trapping of
those registers and is well aware of their existence. Prevent the warning
by adding the SPE registers to the list of registers that KVM emulates.
The access function will inject the undefined exception.

Signed-off-by: Alexandru Elisei <alexandru.elisei@arm.com>
Signed-off-by: Marc Zyngier <maz@kernel.org>
Link: https://lore.kernel.org/r/20210409152154.198566-2-alexandru.elisei@arm.com
arch/arm64/include/asm/sysreg.h
arch/arm64/kvm/sys_regs.c