mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
KVM: selftests: Update hwcr_msr_test for CPUID faulting bit
Add BIT_ULL(35) (CpuidUserDis) to the valid mask in hwcr_msr_test, now that KVM accepts writes to this bit when the guest CPUID advertises CpuidUserDis. Signed-off-by: Jim Mattson <jmattson@google.com> Link: https://patch.msgid.link/20260527174347.2356165-6-jmattson@google.com Signed-off-by: Sean Christopherson <seanjc@google.com>
This commit is contained in:
parent
e93a93f114
commit
b16c2aca36
|
|
@ -226,6 +226,7 @@ struct kvm_x86_cpu_feature {
|
|||
#define X86_FEATURE_SEV KVM_X86_CPU_FEATURE(0x8000001F, 0, EAX, 1)
|
||||
#define X86_FEATURE_SEV_ES KVM_X86_CPU_FEATURE(0x8000001F, 0, EAX, 3)
|
||||
#define X86_FEATURE_SEV_SNP KVM_X86_CPU_FEATURE(0x8000001F, 0, EAX, 4)
|
||||
#define X86_FEATURE_GP_ON_USER_CPUID KVM_X86_CPU_FEATURE(0x80000021, 0, EAX, 17)
|
||||
#define X86_FEATURE_PERFMON_V2 KVM_X86_CPU_FEATURE(0x80000022, 0, EAX, 0)
|
||||
#define X86_FEATURE_LBR_PMC_FREEZE KVM_X86_CPU_FEATURE(0x80000022, 0, EAX, 2)
|
||||
|
||||
|
|
|
|||
|
|
@ -11,12 +11,17 @@
|
|||
void test_hwcr_bit(struct kvm_vcpu *vcpu, unsigned int bit)
|
||||
{
|
||||
const u64 ignored = BIT_ULL(3) | BIT_ULL(6) | BIT_ULL(8);
|
||||
const u64 valid = BIT_ULL(18) | BIT_ULL(24);
|
||||
const u64 legal = ignored | valid;
|
||||
u64 valid = BIT_ULL(18) | BIT_ULL(24);
|
||||
u64 val = BIT_ULL(bit);
|
||||
u64 actual;
|
||||
u64 legal;
|
||||
int r;
|
||||
|
||||
if (kvm_cpu_has(X86_FEATURE_GP_ON_USER_CPUID))
|
||||
valid |= BIT_ULL(35);
|
||||
|
||||
legal = ignored | valid;
|
||||
|
||||
r = _vcpu_set_msr(vcpu, MSR_K7_HWCR, val);
|
||||
TEST_ASSERT(val & ~legal ? !r : r == 1,
|
||||
"Expected KVM_SET_MSRS(MSR_K7_HWCR) = 0x%lx to %s",
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user