[PATCH 03/11] x86/cpu: Remove unnecessary MwAIT leaf checks

Dave Hansen
2024-11-20T19:53:32Z

From: Dave Hansen <dave.hansen@linux.intel.com>

The CPUID leaf dependency checker will remove X86_FEATURE_MWAIT if
the CPUID level is below the required level (CPUID_MWAIT_LEAF).
Thus, if you check X86_FEATURE_MWAIT you do not need to also
check the CPUID level.

Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
---

b/arch/x86/kernel/hpet.c | 3 ---
b/arch/x86/kernel/smpboot.c | 2 --
b/drivers/acpi/acpi_pad.c | 2 --
b/drivers/idle/intel_idle.c | 3 ---
4 files changed, 10 deletions(-)

diff -puN arch/x86/kernel/hpet.c~mwait-leaf-checks-2 arch/x86/kernel/hpet.c
--- a/arch/x86/kernel/hpet.c~mwait-leaf-checks-2 2024-11-20 11:44:16.665629466 -0800
+++ b/arch/x86/kernel/hpet.c 2024-11-20 11:44:16.673629773 -0800
@@ -928,9 +928,6 @@ static bool __init mwait_pc10_supported(
if (!cpu_feature_enabled(X86_FEATURE_MWAIT))
return false;

- if (boot_cpu_data.cpuid_level < CPUID_MWAIT_LEAF)
- return false;
-
cpuid(CPUID_MWAIT_LEAF, &eax, &ebx, &ecx, &mwait_substates);

return (ecx & CPUID5_ECX_EXTENSIONS_SUPPORTED) &&
diff -puN arch/x86/kernel/smpboot.c~mwait-leaf-checks-2 arch/x86/kernel/smpboot.c
--- a/arch/x86/kernel/smpboot.c~mwait-leaf-checks-2 2024-11-20 11:44:16.669629620 -0800
+++ b/arch/x86/kernel/smpboot.c 2024-11-20 11:44:16.673629773 -0800
@@ -1291,8 +1291,6 @@ static inline void mwait_play_dead(void)
return;
if (!this_cpu_has(X86_FEATURE_CLFLUSH))
return;
- if (__this_cpu_read(cpu_info.cpuid_level) < CPUID_MWAIT_LEAF)
- return;

eax = CPUID_MWAIT_LEAF;
ecx = 0;
diff -puN drivers/acpi/acpi_pad.c~mwait-leaf-checks-2 drivers/acpi/acpi_pad.c
--- a/drivers/acpi/acpi_pad.c~mwait-leaf-checks-2 2024-11-20 11:44:16.669629620 -0800
+++ b/drivers/acpi/acpi_pad.c 2024-11-20 11:44:16.673629773 -0800
@@ -47,8 +47,6 @@ static void power_saving_mwait_init(void

if (!boot_cpu_has(X86_FEATURE_MWAIT))
return;
- if (boot_cpu_data.cpuid_level < CPUID_MWAIT_LEAF)
- return;

cpuid(CPUID_MWAIT_LEAF, &eax, &ebx, &ecx, &edx);

diff -puN drivers/idle/intel_idle.c~mwait-leaf-checks-2 drivers/idle/intel_idle.c
--- a/drivers/idle/intel_idle.c~mwait-leaf-checks-2 2024-11-20 11:44:16.669629620 -0800
+++ b/drivers/idle/intel_idle.c 2024-11-20 11:44:16.673629773 -0800
@@ -2269,9 +2269,6 @@ static int __init intel_idle_init(void)
return -ENODEV;
}

- if (boot_cpu_data.cpuid_level < CPUID_MWAIT_LEAF)
- return -ENODEV;
-
cpuid(CPUID_MWAIT_LEAF, &eax, &ebx, &ecx, &mwait_substates);

if (!(ecx & CPUID5_ECX_EXTENSIONS_SUPPORTED) ||
_