Skip to content

Commit

Permalink
KVM: selftests: Use this_cpu_has() in CR4/CPUID sync test
Browse files Browse the repository at this point in the history
Use this_cpu_has() to query OSXSAVE from the L1 guest in the CR4=>CPUID
sync test.

Signed-off-by: Sean Christopherson <seanjc@google.com>
Link: https://lore.kernel.org/r/20220614200707.3315957-34-seanjc@google.com
  • Loading branch information
sean-jc committed Jul 14, 2022
1 parent 48ce3ed commit 2b424a7
Show file tree
Hide file tree
Showing 2 changed files with 2 additions and 15 deletions.
3 changes: 0 additions & 3 deletions tools/testing/selftests/kvm/include/x86_64/processor.h
Expand Up @@ -160,9 +160,6 @@ struct kvm_x86_cpu_feature {
#define X86_FEATURE_KVM_HC_MAP_GPA_RANGE KVM_X86_CPU_FEATURE(0x40000001, 0, EAX, 16)
#define X86_FEATURE_KVM_MIGRATION_CONTROL KVM_X86_CPU_FEATURE(0x40000001, 0, EAX, 17)

/* CPUID.1.ECX */
#define CPUID_OSXSAVE (1ul << 27)

/* Page table bitfield declarations */
#define PTE_PRESENT_MASK BIT_ULL(0)
#define PTE_WRITABLE_MASK BIT_ULL(1)
Expand Down
14 changes: 2 additions & 12 deletions tools/testing/selftests/kvm/x86_64/cr4_cpuid_sync_test.c
Expand Up @@ -21,19 +21,9 @@

static inline bool cr4_cpuid_is_sync(void)
{
int func, subfunc;
uint32_t eax, ebx, ecx, edx;
uint64_t cr4;

func = 0x1;
subfunc = 0x0;
__asm__ __volatile__("cpuid"
: "=a"(eax), "=b"(ebx), "=c"(ecx), "=d"(edx)
: "a"(func), "c"(subfunc));

cr4 = get_cr4();
uint64_t cr4 = get_cr4();

return (!!(ecx & CPUID_OSXSAVE)) == (!!(cr4 & X86_CR4_OSXSAVE));
return (this_cpu_has(X86_FEATURE_OSXSAVE) == !!(cr4 & X86_CR4_OSXSAVE));
}

static void guest_code(void)
Expand Down

0 comments on commit 2b424a7

Please sign in to comment.