]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: arm64: Always start with clearing SME flag on load
authorMarc Zyngier <maz@kernel.org>
Sat, 28 May 2022 11:38:12 +0000 (12:38 +0100)
committerMarc Zyngier <maz@kernel.org>
Tue, 7 Jun 2022 13:31:30 +0000 (14:31 +0100)
commitabc31d76ad1f30c29e534797aaba7de63546e516
tree8f2c06282485751d8da9b8a4c7fc924a023cc516
parenta14970701cb97bc223d6e78806763f6b64e7a469
KVM: arm64: Always start with clearing SME flag on load

On each vcpu load, we set the KVM_ARM64_HOST_SME_ENABLED
flag if SME is enabled for EL0 on the host. This is used to
restore the correct state on vpcu put.

However, it appears that nothing ever clears this flag. Once
set, it will stick until the vcpu is destroyed, which has the
potential to spuriously enable SME for userspace. As it turns
out, this is due to the SME code being more or less copied from
SVE, and inheriting the same shortcomings.

We never saw the issue because nothing uses SME, and the amount
of testing is probably still pretty low.

Fixes: 1776d52ce61a ("KVM: arm64: Handle SME host state when running guests")
Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviwed-by: Mark Brown <broonie@kernel.org>
Link: https://lore.kernel.org/r/20220528113829.1043361-3-maz@kernel.org
arch/arm64/kvm/fpsimd.c