]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
KVM: x86: handle GBPAGE CPUID adjustment for EPT with generic code
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 3 Mar 2020 14:54:39 +0000 (15:54 +0100)
committerPaolo Bonzini <pbonzini@redhat.com>
Mon, 16 Mar 2020 16:58:21 +0000 (17:58 +0100)
commitfb7d4377d513145303c1d0a192cb4b33d72be2d9
tree343eb8702600f30a278dda6141402b453ec90890
parentdbd068040c64162fbbfa278eb63ef64704190612
KVM: x86: handle GBPAGE CPUID adjustment for EPT with generic code

The clearing of the GBPAGE CPUID bit for VMX is wrong; support for 1GB
pages in EPT has no relationship to whether 1GB pages should be marked as
supported in CPUID.  This has no ill effect because we're only clearing
the bit, but we're not marking 1GB pages as available when EPT is disabled
(even though they are actually supported thanks to shadowing).  Instead,
forcibly enable 1GB pages in the shadow paging case.

This also eliminates an instance of the undesirable "unsigned f_* =
*_supported ? F(*) : 0" pattern in the common CPUID handling code,
and paves the way toward eliminating ->get_lpage_level().

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
arch/x86/kvm/cpuid.c