]> git.baikalelectronics.ru Git - kernel.git/commit
KVM: nVMX: Set UMIP bit CR4_FIXED1 MSR when emulating UMIP
authorSean Christopherson <seanjc@google.com>
Tue, 7 Jun 2022 21:36:00 +0000 (21:36 +0000)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 17 Aug 2022 12:23:58 +0000 (14:23 +0200)
commit40e1a1d69569b4f0ef5cdc40f48859f4b4fda565
treed789e1a924039c6ce6a5e0fbcc2cb67334348732
parent73bcb8b95c23df46f324f3cee1b6498dfa33288b
KVM: nVMX: Set UMIP bit CR4_FIXED1 MSR when emulating UMIP

[ Upstream commit f1e91335c242998878f32e58fd2cd922dabb9653 ]

Make UMIP an "allowed-1" bit CR4_FIXED1 MSR when KVM is emulating UMIP.
KVM emulates UMIP for both L1 and L2, and so should enumerate that L2 is
allowed to have CR4.UMIP=1.  Not setting the bit doesn't immediately
break nVMX, as KVM does set/clear the bit in CR4_FIXED1 in response to a
guest CPUID update, i.e. KVM will correctly (dis)allow nested VM-Entry
based on whether or not UMIP is exposed to L1.  That said, KVM should
enumerate the bit as being allowed from time zero, e.g. userspace will
see the wrong value if the MSR is read before CPUID is written.

Fixes: f9d109515d81 ("KVM: vmx: add support for emulating UMIP")
Signed-off-by: Sean Christopherson <seanjc@google.com>
Message-Id: <20220607213604.3346000-12-seanjc@google.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
arch/x86/kvm/vmx/nested.c