mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-26 13:44:15 +08:00
KVM: selftests: Use this_cpu_has() in CR4/CPUID sync test
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
This commit is contained in:
parent
48ce3ed052
commit
2b424a76d0
@ -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)
|
||||
|
@ -21,19 +21,9 @@
|
||||
|
||||
static inline bool cr4_cpuid_is_sync(void)
|
||||
{
|
||||
int func, subfunc;
|
||||
uint32_t eax, ebx, ecx, edx;
|
||||
uint64_t cr4;
|
||||
uint64_t cr4 = get_cr4();
|
||||
|
||||
func = 0x1;
|
||||
subfunc = 0x0;
|
||||
__asm__ __volatile__("cpuid"
|
||||
: "=a"(eax), "=b"(ebx), "=c"(ecx), "=d"(edx)
|
||||
: "a"(func), "c"(subfunc));
|
||||
|
||||
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)
|
||||
|
Loading…
Reference in New Issue
Block a user