[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [xen master] x86/cpuid: replace more cpufeat_word() uses
commit 45f6ff12558fb96e8f2912f577b2088470bcf60e Author: Jan Beulich <jbeulich@xxxxxxxx> AuthorDate: Thu Feb 24 11:22:08 2022 +0100 Commit: Jan Beulich <jbeulich@xxxxxxxx> CommitDate: Thu Feb 24 11:22:08 2022 +0100 x86/cpuid: replace more cpufeat_word() uses Complete what e3662437eb43 ("x86/cpuid: Disentangle logic for new feature leaves") has begun: "Switch to using FEATURESET_* just like the policy/featureset helpers. This breaks the cognitive complexity of needing to know which leaf a specifically named feature should reside in, and is shorter to write. It is also far easier to identify as correct at a glance, given the correlation with the CPUID leaf being read." Signed-off-by: Jan Beulich <jbeulich@xxxxxxxx> Acked-by: Andrew Cooper <andrew.cooper3@xxxxxxxxxx> --- xen/arch/x86/cpu/common.c | 17 ++++++++--------- xen/arch/x86/efi/efi-boot.h | 4 ++-- xen/arch/x86/mpparse.c | 2 +- xen/arch/x86/tsx.c | 2 +- 4 files changed, 12 insertions(+), 13 deletions(-) diff --git a/xen/arch/x86/cpu/common.c b/xen/arch/x86/cpu/common.c index bfedc99b92..bd2207163a 100644 --- a/xen/arch/x86/cpu/common.c +++ b/xen/arch/x86/cpu/common.c @@ -332,24 +332,23 @@ void __init early_cpu_init(void) cpuid(0x00000001, &eax, &ebx, &ecx, &edx); c->x86 = get_cpu_family(eax, &c->x86_model, &c->x86_mask); - edx &= ~cleared_caps[cpufeat_word(X86_FEATURE_FPU)]; - ecx &= ~cleared_caps[cpufeat_word(X86_FEATURE_SSE3)]; + edx &= ~cleared_caps[FEATURESET_1d]; + ecx &= ~cleared_caps[FEATURESET_1c]; if (edx & cpufeat_mask(X86_FEATURE_CLFLUSH)) c->x86_cache_alignment = ((ebx >> 8) & 0xff) * 8; /* Leaf 0x1 capabilities filled in early for Xen. */ - c->x86_capability[cpufeat_word(X86_FEATURE_FPU)] = edx; - c->x86_capability[cpufeat_word(X86_FEATURE_SSE3)] = ecx; + c->x86_capability[FEATURESET_1d] = edx; + c->x86_capability[FEATURESET_1c] = ecx; printk(XENLOG_INFO "CPU Vendor: %s, Family %u (%#x), Model %u (%#x), Stepping %u (raw %08x)\n", x86_cpuid_vendor_to_str(c->x86_vendor), c->x86, c->x86, c->x86_model, c->x86_model, c->x86_mask, eax); - if (c->cpuid_level >= 7) { - cpuid_count(7, 0, &eax, &ebx, &ecx, &edx); - c->x86_capability[cpufeat_word(X86_FEATURE_CET_SS)] = ecx; - c->x86_capability[cpufeat_word(X86_FEATURE_CET_IBT)] = edx; - } + if (c->cpuid_level >= 7) + cpuid_count(7, 0, &eax, &ebx, + &c->x86_capability[FEATURESET_7c0], + &c->x86_capability[FEATURESET_7d0]); eax = cpuid_eax(0x80000000); if ((eax >> 16) == 0x8000 && eax >= 0x80000008) { diff --git a/xen/arch/x86/efi/efi-boot.h b/xen/arch/x86/efi/efi-boot.h index f69509a210..d91eb5a537 100644 --- a/xen/arch/x86/efi/efi-boot.h +++ b/xen/arch/x86/efi/efi-boot.h @@ -685,11 +685,11 @@ static void __init efi_arch_cpu(void) boot_tsc_stamp = rdtsc(); - caps[cpufeat_word(X86_FEATURE_HYPERVISOR)] = cpuid_ecx(1); + caps[FEATURESET_1c] = cpuid_ecx(1); if ( (eax >> 16) == 0x8000 && eax > 0x80000000 ) { - caps[cpufeat_word(X86_FEATURE_SYSCALL)] = cpuid_edx(0x80000001); + caps[FEATURESET_e1d] = cpuid_edx(0x80000001); if ( cpu_has_nx ) trampoline_efer |= EFER_NXE; diff --git a/xen/arch/x86/mpparse.c b/xen/arch/x86/mpparse.c index 8faac289ea..d8ccab2449 100644 --- a/xen/arch/x86/mpparse.c +++ b/xen/arch/x86/mpparse.c @@ -516,7 +516,7 @@ static inline void __init construct_default_ISA_mptable(int mpc_default_type) (boot_cpu_data.x86_model << 4) | boot_cpu_data.x86_mask; processor.mpc_featureflag = - boot_cpu_data.x86_capability[cpufeat_word(X86_FEATURE_FPU)]; + boot_cpu_data.x86_capability[FEATURESET_1d]; processor.mpc_reserved[0] = 0; processor.mpc_reserved[1] = 0; for (i = 0; i < 2; i++) { diff --git a/xen/arch/x86/tsx.c b/xen/arch/x86/tsx.c index b156844cde..41b6092cfe 100644 --- a/xen/arch/x86/tsx.c +++ b/xen/arch/x86/tsx.c @@ -48,7 +48,7 @@ void tsx_init(void) bool has_rtm_always_abort; if ( boot_cpu_data.cpuid_level >= 7 ) - boot_cpu_data.x86_capability[cpufeat_word(X86_FEATURE_ARCH_CAPS)] + boot_cpu_data.x86_capability[FEATURESET_7d0] = cpuid_count_edx(7, 0); if ( cpu_has_arch_caps ) -- generated by git-patchbot for /home/xen/git/xen.git#master
|
![]() |
Lists.xenproject.org is hosted with RackSpace, monitoring our |