KVM: x86: Filter out XTILE_CFG if XTILE_DATA isn't permitted
authorSean Christopherson <seanjc@google.com>
Wed, 5 Apr 2023 00:45:16 +0000 (17:45 -0700)
committerSean Christopherson <seanjc@google.com>
Tue, 11 Apr 2023 17:19:03 +0000 (10:19 -0700)
commit55cd57b596e86140503214eafc8fb62c9c544e8f
treed07ae7f768eaaafed257fc4434a35ab2d77ac67e
parent6be3ae45f567cdebb5b9938137bf3445ceacf9fb
KVM: x86: Filter out XTILE_CFG if XTILE_DATA isn't permitted

Filter out XTILE_CFG from the supported XCR0 reported to userspace if the
current process doesn't have access to XTILE_DATA.  Attempting to set
XTILE_CFG in XCR0 will #GP if XTILE_DATA is also not set, and so keeping
XTILE_CFG as supported results in explosions if userspace feeds
KVM_GET_SUPPORTED_CPUID back into KVM and the guest doesn't sanity check
CPUID.

Fixes: 445ecdf79be0 ("kvm: x86: Exclude unpermitted xfeatures at KVM_GET_SUPPORTED_CPUID")
Reported-by: Aaron Lewis <aaronlewis@google.com>
Reviewed-by: Aaron Lewis <aaronlewis@google.com>
Tested-by: Aaron Lewis <aaronlewis@google.com>
Link: https://lore.kernel.org/r/20230405004520.421768-3-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/kvm/x86.h