* [PATCH v3 1/6] x86/cpuid: Remove transitional <asm/cpuid.h> header
2025-07-22 6:54 [PATCH v3 0/6] x86: Disentangle <asm/processor.h> dependency on CPUID headers Ahmed S. Darwish
@ 2025-07-22 6:54 ` Ahmed S. Darwish
2025-07-22 6:54 ` [PATCH v3 2/6] ASoC: Intel: avs: Include CPUID header at file scope Ahmed S. Darwish
` (4 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Ahmed S. Darwish @ 2025-07-22 6:54 UTC (permalink / raw)
To: Borislav Petkov, Ingo Molnar, Dave Hansen
Cc: Thomas Gleixner, Andrew Cooper, Paolo Bonzini, Vitaly Kuznetsov,
Sean Christopherson, Juergen Gross, Boris Ostrovsky,
Greg Kroah-Hartman, John Ogness, x86, kvm, x86-cpuid, LKML,
Ahmed S. Darwish
All CPUID call sites were updated at commit:
968e30006807 ("x86/cpuid: Set <asm/cpuid/api.h> as the main CPUID header")
to include <asm/cpuid/api.h> instead of <asm/cpuid.h>.
The <asm/cpuid.h> header was still retained as a wrapper, just in case
some new code in -next started using it. Now that everything is merged
to Linus' tree, remove the header.
Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de>
---
arch/x86/include/asm/cpuid.h | 8 --------
1 file changed, 8 deletions(-)
delete mode 100644 arch/x86/include/asm/cpuid.h
diff --git a/arch/x86/include/asm/cpuid.h b/arch/x86/include/asm/cpuid.h
deleted file mode 100644
index d5749b25fa10..000000000000
--- a/arch/x86/include/asm/cpuid.h
+++ /dev/null
@@ -1,8 +0,0 @@
-/* SPDX-License-Identifier: GPL-2.0 */
-
-#ifndef _ASM_X86_CPUID_H
-#define _ASM_X86_CPUID_H
-
-#include <asm/cpuid/api.h>
-
-#endif /* _ASM_X86_CPUID_H */
--
2.50.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 2/6] ASoC: Intel: avs: Include CPUID header at file scope
2025-07-22 6:54 [PATCH v3 0/6] x86: Disentangle <asm/processor.h> dependency on CPUID headers Ahmed S. Darwish
2025-07-22 6:54 ` [PATCH v3 1/6] x86/cpuid: Remove transitional <asm/cpuid.h> header Ahmed S. Darwish
@ 2025-07-22 6:54 ` Ahmed S. Darwish
2025-07-22 6:54 ` [PATCH v3 3/6] x86: Reorder headers alphabetically Ahmed S. Darwish
` (3 subsequent siblings)
5 siblings, 0 replies; 8+ messages in thread
From: Ahmed S. Darwish @ 2025-07-22 6:54 UTC (permalink / raw)
To: Borislav Petkov, Ingo Molnar, Dave Hansen
Cc: Thomas Gleixner, Andrew Cooper, Paolo Bonzini, Vitaly Kuznetsov,
Sean Christopherson, Juergen Gross, Boris Ostrovsky,
Greg Kroah-Hartman, John Ogness, x86, kvm, x86-cpuid, LKML,
Ahmed S. Darwish
Commit
cbe37a4d2b3c ("ASoC: Intel: avs: Configure basefw on TGL-based platforms")
includes the main CPUID header from within a C function. This works by
luck and forbids valid refactorings inside the CPUID header.
Include the CPUID header at file scope instead.
Note, for the CPUID(0x15) leaf number, use CPUID_LEAF_TSC instead of
defining a custom local macro for it.
Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de>
Acked-by: Cezary Rojewski <cezary.rojewski@intel.com>
---
sound/soc/intel/avs/tgl.c | 25 ++++++++++++++++---------
1 file changed, 16 insertions(+), 9 deletions(-)
diff --git a/sound/soc/intel/avs/tgl.c b/sound/soc/intel/avs/tgl.c
index 9dbb3ad0954a..cf19d3a7ced2 100644
--- a/sound/soc/intel/avs/tgl.c
+++ b/sound/soc/intel/avs/tgl.c
@@ -10,8 +10,6 @@
#include "avs.h"
#include "messages.h"
-#define CPUID_TSC_LEAF 0x15
-
static int avs_tgl_dsp_core_power(struct avs_dev *adev, u32 core_mask, bool power)
{
core_mask &= AVS_MAIN_CORE_MASK;
@@ -39,22 +37,31 @@ static int avs_tgl_dsp_core_stall(struct avs_dev *adev, u32 core_mask, bool stal
return avs_dsp_core_stall(adev, core_mask, stall);
}
+#ifdef CONFIG_X86
+#include <asm/cpuid/api.h>
+static unsigned int intel_crystal_freq_hz(void)
+{
+ return cpuid_ecx(CPUID_LEAF_TSC);
+}
+#else
+static unsigned int intel_crystal_freq_hz(void)
+{
+ return 0;
+}
+#endif /* !CONFIG_X86 */
+
static int avs_tgl_config_basefw(struct avs_dev *adev)
{
+ unsigned int freq = intel_crystal_freq_hz();
struct pci_dev *pci = adev->base.pci;
struct avs_bus_hwid hwid;
int ret;
-#ifdef CONFIG_X86
- unsigned int ecx;
-#include <asm/cpuid/api.h>
- ecx = cpuid_ecx(CPUID_TSC_LEAF);
- if (ecx) {
- ret = avs_ipc_set_fw_config(adev, 1, AVS_FW_CFG_XTAL_FREQ_HZ, sizeof(ecx), &ecx);
+ if (freq) {
+ ret = avs_ipc_set_fw_config(adev, 1, AVS_FW_CFG_XTAL_FREQ_HZ, sizeof(freq), &freq);
if (ret)
return AVS_IPC_RET(ret);
}
-#endif
hwid.device = pci->device;
hwid.subsystem = pci->subsystem_vendor | (pci->subsystem_device << 16);
--
2.50.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 3/6] x86: Reorder headers alphabetically
2025-07-22 6:54 [PATCH v3 0/6] x86: Disentangle <asm/processor.h> dependency on CPUID headers Ahmed S. Darwish
2025-07-22 6:54 ` [PATCH v3 1/6] x86/cpuid: Remove transitional <asm/cpuid.h> header Ahmed S. Darwish
2025-07-22 6:54 ` [PATCH v3 2/6] ASoC: Intel: avs: Include CPUID header at file scope Ahmed S. Darwish
@ 2025-07-22 6:54 ` Ahmed S. Darwish
2025-07-22 14:18 ` Sean Christopherson
2025-07-22 6:54 ` [PATCH v3 4/6] drivers: " Ahmed S. Darwish
` (2 subsequent siblings)
5 siblings, 1 reply; 8+ messages in thread
From: Ahmed S. Darwish @ 2025-07-22 6:54 UTC (permalink / raw)
To: Borislav Petkov, Ingo Molnar, Dave Hansen
Cc: Thomas Gleixner, Andrew Cooper, Paolo Bonzini, Vitaly Kuznetsov,
Sean Christopherson, Juergen Gross, Boris Ostrovsky,
Greg Kroah-Hartman, John Ogness, x86, kvm, x86-cpuid, LKML,
Ahmed S. Darwish
Multiple x86 source files use the cpuid_*() macros, but implicitly
include the main CPUID API header.
Sort their include lines so that <asm/cpuid/api.h> can be explicitly
included next.
Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de>
---
arch/x86/boot/startup/sme.c | 8 +--
arch/x86/coco/tdx/tdx.c | 5 +-
arch/x86/events/amd/uncore.c | 14 +++---
arch/x86/events/zhaoxin/core.c | 11 ++---
arch/x86/kernel/apic/apic.c | 70 +++++++++++++--------------
arch/x86/kernel/cpu/amd.c | 25 +++++-----
arch/x86/kernel/cpu/mce/core.c | 62 ++++++++++++------------
arch/x86/kernel/cpu/microcode/amd.c | 12 ++---
arch/x86/kernel/cpu/microcode/core.c | 22 ++++-----
arch/x86/kernel/cpu/microcode/intel.c | 11 +++--
arch/x86/kernel/cpu/mshyperv.c | 28 ++++++-----
arch/x86/kernel/cpu/resctrl/core.c | 5 +-
arch/x86/kernel/cpu/scattered.c | 2 +-
arch/x86/kernel/cpu/topology_common.c | 2 +-
arch/x86/kernel/cpu/vmware.c | 13 ++---
arch/x86/kernel/jailhouse.c | 9 ++--
arch/x86/kernel/kvm.c | 35 +++++++-------
arch/x86/kernel/paravirt.c | 28 +++++------
arch/x86/kvm/mmu/mmu.c | 56 ++++++++++-----------
arch/x86/kvm/svm/sev.c | 25 +++++-----
arch/x86/kvm/svm/svm.c | 50 +++++++++----------
arch/x86/kvm/vmx/pmu_intel.c | 6 ++-
arch/x86/kvm/vmx/sgx.c | 2 +-
arch/x86/kvm/vmx/vmx.c | 18 +++----
arch/x86/mm/pti.c | 21 ++++----
arch/x86/pci/xen.c | 22 ++++-----
arch/x86/xen/enlighten_hvm.c | 12 ++---
arch/x86/xen/pmu.c | 12 +++--
arch/x86/xen/time.c | 22 +++++----
29 files changed, 312 insertions(+), 296 deletions(-)
diff --git a/arch/x86/boot/startup/sme.c b/arch/x86/boot/startup/sme.c
index 70ea1748c0a7..922b236be02f 100644
--- a/arch/x86/boot/startup/sme.c
+++ b/arch/x86/boot/startup/sme.c
@@ -34,15 +34,15 @@
*/
#define USE_EARLY_PGTABLE_L5
+#include <linux/cc_platform.h>
#include <linux/kernel.h>
-#include <linux/mm.h>
#include <linux/mem_encrypt.h>
-#include <linux/cc_platform.h>
+#include <linux/mm.h>
+#include <asm/coco.h>
#include <asm/init.h>
-#include <asm/setup.h>
#include <asm/sections.h>
-#include <asm/coco.h>
+#include <asm/setup.h>
#include <asm/sev.h>
#define PGD_FLAGS _KERNPG_TABLE_NOENC
diff --git a/arch/x86/coco/tdx/tdx.c b/arch/x86/coco/tdx/tdx.c
index 7b2833705d47..7bc11836c46a 100644
--- a/arch/x86/coco/tdx/tdx.c
+++ b/arch/x86/coco/tdx/tdx.c
@@ -8,16 +8,17 @@
#include <linux/export.h>
#include <linux/io.h>
#include <linux/kexec.h>
+
#include <asm/coco.h>
-#include <asm/tdx.h>
-#include <asm/vmx.h>
#include <asm/ia32.h>
#include <asm/insn.h>
#include <asm/insn-eval.h>
#include <asm/paravirt_types.h>
#include <asm/pgtable.h>
#include <asm/set_memory.h>
+#include <asm/tdx.h>
#include <asm/traps.h>
+#include <asm/vmx.h>
/* MMIO direction */
#define EPT_READ 0
diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c
index e8b6af199c73..c1483ef16c0b 100644
--- a/arch/x86/events/amd/uncore.c
+++ b/arch/x86/events/amd/uncore.c
@@ -5,18 +5,18 @@
* Author: Jacob Shin <jacob.shin@amd.com>
*/
-#include <linux/perf_event.h>
-#include <linux/percpu.h>
-#include <linux/types.h>
-#include <linux/slab.h>
-#include <linux/init.h>
#include <linux/cpu.h>
-#include <linux/cpumask.h>
#include <linux/cpufeature.h>
+#include <linux/cpumask.h>
+#include <linux/init.h>
+#include <linux/percpu.h>
+#include <linux/perf_event.h>
+#include <linux/slab.h>
#include <linux/smp.h>
+#include <linux/types.h>
-#include <asm/perf_event.h>
#include <asm/msr.h>
+#include <asm/perf_event.h>
#define NUM_COUNTERS_NB 4
#define NUM_COUNTERS_L2 4
diff --git a/arch/x86/events/zhaoxin/core.c b/arch/x86/events/zhaoxin/core.c
index 4bdfcf091200..d59992364880 100644
--- a/arch/x86/events/zhaoxin/core.c
+++ b/arch/x86/events/zhaoxin/core.c
@@ -5,16 +5,16 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-#include <linux/stddef.h>
-#include <linux/types.h>
-#include <linux/init.h>
-#include <linux/slab.h>
#include <linux/export.h>
+#include <linux/init.h>
#include <linux/nmi.h>
+#include <linux/slab.h>
+#include <linux/stddef.h>
+#include <linux/types.h>
+#include <asm/apic.h>
#include <asm/cpufeature.h>
#include <asm/hardirq.h>
-#include <asm/apic.h>
#include <asm/msr.h>
#include "../perf_event.h"
@@ -616,4 +616,3 @@ __init int zhaoxin_pmu_init(void)
return 0;
}
-
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index d73ba5a7b623..f0e63842e2ef 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -15,57 +15,57 @@
* Mikael Pettersson : PM converted to driver model.
*/
-#include <linux/perf_event.h>
-#include <linux/kernel_stat.h>
-#include <linux/mc146818rtc.h>
#include <linux/acpi_pmtmr.h>
+#include <linux/atomic.h>
#include <linux/bitmap.h>
#include <linux/clockchips.h>
-#include <linux/interrupt.h>
-#include <linux/memblock.h>
-#include <linux/ftrace.h>
-#include <linux/ioport.h>
-#include <linux/export.h>
-#include <linux/syscore_ops.h>
+#include <linux/cpu.h>
#include <linux/delay.h>
-#include <linux/timex.h>
-#include <linux/i8253.h>
#include <linux/dmar.h>
-#include <linux/init.h>
-#include <linux/cpu.h>
#include <linux/dmi.h>
-#include <linux/smp.h>
+#include <linux/export.h>
+#include <linux/ftrace.h>
+#include <linux/i8253.h>
+#include <linux/init.h>
+#include <linux/interrupt.h>
+#include <linux/ioport.h>
+#include <linux/kernel_stat.h>
+#include <linux/mc146818rtc.h>
+#include <linux/memblock.h>
#include <linux/mm.h>
+#include <linux/perf_event.h>
+#include <linux/smp.h>
+#include <linux/syscore_ops.h>
+#include <linux/timex.h>
#include <xen/xen.h>
-#include <asm/trace/irq_vectors.h>
-#include <asm/irq_remapping.h>
-#include <asm/pc-conf-reg.h>
-#include <asm/perf_event.h>
-#include <asm/x86_init.h>
-#include <linux/atomic.h>
-#include <asm/barrier.h>
-#include <asm/mpspec.h>
-#include <asm/i8259.h>
-#include <asm/proto.h>
-#include <asm/traps.h>
-#include <asm/apic.h>
#include <asm/acpi.h>
-#include <asm/io_apic.h>
+#include <asm/apic.h>
+#include <asm/barrier.h>
+#include <asm/cpu.h>
+#include <asm/cpu_device_id.h>
#include <asm/desc.h>
#include <asm/hpet.h>
-#include <asm/mtrr.h>
-#include <asm/time.h>
-#include <asm/smp.h>
-#include <asm/mce.h>
-#include <asm/msr.h>
-#include <asm/tsc.h>
#include <asm/hypervisor.h>
-#include <asm/cpu_device_id.h>
+#include <asm/i8259.h>
#include <asm/intel-family.h>
+#include <asm/io_apic.h>
#include <asm/irq_regs.h>
-#include <asm/cpu.h>
+#include <asm/irq_remapping.h>
+#include <asm/mce.h>
+#include <asm/mpspec.h>
+#include <asm/msr.h>
+#include <asm/mtrr.h>
+#include <asm/pc-conf-reg.h>
+#include <asm/perf_event.h>
+#include <asm/proto.h>
+#include <asm/smp.h>
+#include <asm/time.h>
+#include <asm/trace/irq_vectors.h>
+#include <asm/traps.h>
+#include <asm/tsc.h>
+#include <asm/x86_init.h>
#include "local.h"
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index 329ee185d8cc..c98b0d952537 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -1,32 +1,33 @@
// SPDX-License-Identifier: GPL-2.0-only
-#include <linux/export.h>
+
#include <linux/bitops.h>
#include <linux/elf.h>
-#include <linux/mm.h>
-
+#include <linux/export.h>
#include <linux/io.h>
+#include <linux/mm.h>
+#include <linux/platform_data/x86/amd-fch.h>
+#include <linux/random.h>
#include <linux/sched.h>
#include <linux/sched/clock.h>
-#include <linux/random.h>
#include <linux/topology.h>
-#include <linux/platform_data/x86/amd-fch.h>
-#include <asm/processor.h>
+
#include <asm/apic.h>
#include <asm/cacheinfo.h>
#include <asm/cpu.h>
#include <asm/cpu_device_id.h>
-#include <asm/spec-ctrl.h>
-#include <asm/smp.h>
+#include <asm/debugreg.h>
+#include <asm/delay.h>
+#include <asm/msr.h>
#include <asm/numa.h>
#include <asm/pci-direct.h>
-#include <asm/delay.h>
-#include <asm/debugreg.h>
+#include <asm/processor.h>
#include <asm/resctrl.h>
-#include <asm/msr.h>
#include <asm/sev.h>
+#include <asm/smp.h>
+#include <asm/spec-ctrl.h>
#ifdef CONFIG_X86_64
-# include <asm/mmconfig.h>
+#include <asm/mmconfig.h>
#endif
#include "cpu.h"
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 4da4eab56c81..5a11c522ea97 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -9,52 +9,52 @@
* Author: Andi Kleen
*/
-#include <linux/thread_info.h>
#include <linux/capability.h>
-#include <linux/miscdevice.h>
-#include <linux/ratelimit.h>
-#include <linux/rcupdate.h>
-#include <linux/kobject.h>
-#include <linux/uaccess.h>
-#include <linux/kdebug.h>
-#include <linux/kernel.h>
-#include <linux/percpu.h>
-#include <linux/string.h>
-#include <linux/device.h>
-#include <linux/syscore_ops.h>
-#include <linux/delay.h>
+#include <linux/cpu.h>
#include <linux/ctype.h>
-#include <linux/sched.h>
-#include <linux/sysfs.h>
-#include <linux/types.h>
-#include <linux/slab.h>
+#include <linux/debugfs.h>
+#include <linux/delay.h>
+#include <linux/device.h>
+#include <linux/export.h>
+#include <linux/fs.h>
+#include <linux/hardirq.h>
#include <linux/init.h>
+#include <linux/irq_work.h>
+#include <linux/kdebug.h>
+#include <linux/kernel.h>
+#include <linux/kexec.h>
#include <linux/kmod.h>
-#include <linux/poll.h>
+#include <linux/kobject.h>
+#include <linux/miscdevice.h>
+#include <linux/mm.h>
#include <linux/nmi.h>
-#include <linux/cpu.h>
+#include <linux/percpu.h>
+#include <linux/poll.h>
#include <linux/ras.h>
-#include <linux/smp.h>
-#include <linux/fs.h>
-#include <linux/mm.h>
-#include <linux/debugfs.h>
-#include <linux/irq_work.h>
-#include <linux/export.h>
+#include <linux/ratelimit.h>
+#include <linux/rcupdate.h>
+#include <linux/sched.h>
#include <linux/set_memory.h>
+#include <linux/slab.h>
+#include <linux/smp.h>
+#include <linux/string.h>
#include <linux/sync_core.h>
+#include <linux/syscore_ops.h>
+#include <linux/sysfs.h>
#include <linux/task_work.h>
-#include <linux/hardirq.h>
-#include <linux/kexec.h>
+#include <linux/thread_info.h>
+#include <linux/types.h>
+#include <linux/uaccess.h>
-#include <asm/fred.h>
#include <asm/cpu_device_id.h>
-#include <asm/processor.h>
-#include <asm/traps.h>
-#include <asm/tlbflush.h>
+#include <asm/fred.h>
#include <asm/mce.h>
#include <asm/msr.h>
+#include <asm/processor.h>
#include <asm/reboot.h>
#include <asm/tdx.h>
+#include <asm/tlbflush.h>
+#include <asm/traps.h>
#include "internal.h"
diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c
index 097e39327942..fc62ebf96f01 100644
--- a/arch/x86/kernel/cpu/microcode/amd.c
+++ b/arch/x86/kernel/cpu/microcode/amd.c
@@ -21,23 +21,23 @@
*/
#define pr_fmt(fmt) "microcode: " fmt
+#include <linux/bsearch.h>
#include <linux/earlycpio.h>
#include <linux/firmware.h>
-#include <linux/bsearch.h>
-#include <linux/uaccess.h>
-#include <linux/vmalloc.h>
#include <linux/initrd.h>
#include <linux/kernel.h>
#include <linux/pci.h>
+#include <linux/uaccess.h>
+#include <linux/vmalloc.h>
#include <crypto/sha2.h>
-#include <asm/microcode.h>
-#include <asm/processor.h>
#include <asm/cmdline.h>
-#include <asm/setup.h>
#include <asm/cpu.h>
+#include <asm/microcode.h>
#include <asm/msr.h>
+#include <asm/processor.h>
+#include <asm/setup.h>
#include <asm/tlb.h>
#include "internal.h"
diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c
index fe50eb5b7c4a..9243ed3ded85 100644
--- a/arch/x86/kernel/cpu/microcode/core.c
+++ b/arch/x86/kernel/cpu/microcode/core.c
@@ -17,27 +17,27 @@
#define pr_fmt(fmt) "microcode: " fmt
-#include <linux/platform_device.h>
-#include <linux/stop_machine.h>
-#include <linux/syscore_ops.h>
-#include <linux/miscdevice.h>
#include <linux/capability.h>
-#include <linux/firmware.h>
+#include <linux/cpu.h>
#include <linux/cpumask.h>
-#include <linux/kernel.h>
#include <linux/delay.h>
-#include <linux/mutex.h>
-#include <linux/cpu.h>
-#include <linux/nmi.h>
+#include <linux/firmware.h>
#include <linux/fs.h>
+#include <linux/kernel.h>
+#include <linux/miscdevice.h>
#include <linux/mm.h>
+#include <linux/mutex.h>
+#include <linux/nmi.h>
+#include <linux/platform_device.h>
+#include <linux/stop_machine.h>
+#include <linux/syscore_ops.h>
#include <asm/apic.h>
+#include <asm/cmdline.h>
#include <asm/cpu_device_id.h>
+#include <asm/msr.h>
#include <asm/perf_event.h>
#include <asm/processor.h>
-#include <asm/cmdline.h>
-#include <asm/msr.h>
#include <asm/setup.h>
#include "internal.h"
diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c
index 371ca6eac00e..99fda8f7dba7 100644
--- a/arch/x86/kernel/cpu/microcode/intel.c
+++ b/arch/x86/kernel/cpu/microcode/intel.c
@@ -11,21 +11,22 @@
* H Peter Anvin" <hpa@zytor.com>
*/
#define pr_fmt(fmt) "microcode: " fmt
+
+#include <linux/cpu.h>
#include <linux/earlycpio.h>
#include <linux/firmware.h>
-#include <linux/uaccess.h>
#include <linux/initrd.h>
#include <linux/kernel.h>
+#include <linux/mm.h>
#include <linux/slab.h>
-#include <linux/cpu.h>
+#include <linux/uaccess.h>
#include <linux/uio.h>
-#include <linux/mm.h>
#include <asm/cpu_device_id.h>
+#include <asm/msr.h>
#include <asm/processor.h>
-#include <asm/tlbflush.h>
#include <asm/setup.h>
-#include <asm/msr.h>
+#include <asm/tlbflush.h>
#include "internal.h"
diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
index c78f860419d6..d0491bba9e30 100644
--- a/arch/x86/kernel/cpu/mshyperv.c
+++ b/arch/x86/kernel/cpu/mshyperv.c
@@ -6,33 +6,35 @@
* Author : K. Y. Srinivasan <ksrinivasan@novell.com>
*/
-#include <linux/types.h>
-#include <linux/time.h>
#include <linux/clocksource.h>
-#include <linux/init.h>
+#include <linux/efi.h>
#include <linux/export.h>
#include <linux/hardirq.h>
-#include <linux/efi.h>
+#include <linux/init.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
#include <linux/kexec.h>
#include <linux/random.h>
-#include <asm/processor.h>
-#include <asm/hypervisor.h>
+#include <linux/time.h>
+#include <linux/types.h>
+
+#include <clocksource/hyperv_timer.h>
#include <hyperv/hvhdk.h>
-#include <asm/mshyperv.h>
+
+#include <asm/apic.h>
#include <asm/desc.h>
+#include <asm/hypervisor.h>
+#include <asm/i8259.h>
#include <asm/idtentry.h>
#include <asm/irq_regs.h>
-#include <asm/i8259.h>
-#include <asm/apic.h>
-#include <asm/timer.h>
-#include <asm/reboot.h>
-#include <asm/nmi.h>
-#include <clocksource/hyperv_timer.h>
+#include <asm/mshyperv.h>
#include <asm/msr.h>
+#include <asm/nmi.h>
#include <asm/numa.h>
+#include <asm/processor.h>
+#include <asm/reboot.h>
#include <asm/svm.h>
+#include <asm/timer.h>
/* Is Linux running on nested Microsoft Hypervisor */
bool hv_nested;
diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c
index 187d527ef73b..35285567beec 100644
--- a/arch/x86/kernel/cpu/resctrl/core.c
+++ b/arch/x86/kernel/cpu/resctrl/core.c
@@ -17,13 +17,14 @@
#define pr_fmt(fmt) "resctrl: " fmt
#include <linux/cpu.h>
-#include <linux/slab.h>
-#include <linux/err.h>
#include <linux/cpuhotplug.h>
+#include <linux/err.h>
+#include <linux/slab.h>
#include <asm/cpu_device_id.h>
#include <asm/msr.h>
#include <asm/resctrl.h>
+
#include "internal.h"
/*
diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattered.c
index b4a1f6732a3a..b52d00e8ad54 100644
--- a/arch/x86/kernel/cpu/scattered.c
+++ b/arch/x86/kernel/cpu/scattered.c
@@ -4,8 +4,8 @@
*/
#include <linux/cpu.h>
-#include <asm/memtype.h>
#include <asm/apic.h>
+#include <asm/memtype.h>
#include <asm/processor.h>
#include "cpu.h"
diff --git a/arch/x86/kernel/cpu/topology_common.c b/arch/x86/kernel/cpu/topology_common.c
index b5a5e1411469..48c47d02d8a9 100644
--- a/arch/x86/kernel/cpu/topology_common.c
+++ b/arch/x86/kernel/cpu/topology_common.c
@@ -3,8 +3,8 @@
#include <xen/xen.h>
-#include <asm/intel-family.h>
#include <asm/apic.h>
+#include <asm/intel-family.h>
#include <asm/processor.h>
#include <asm/smp.h>
diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index cb3f900c46fc..f5e82d15d0b1 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -21,21 +21,22 @@
*
*/
-#include <linux/dmi.h>
-#include <linux/init.h>
-#include <linux/export.h>
#include <linux/clocksource.h>
#include <linux/cpu.h>
+#include <linux/dmi.h>
#include <linux/efi.h>
+#include <linux/export.h>
+#include <linux/init.h>
#include <linux/reboot.h>
#include <linux/static_call.h>
+
+#include <asm/apic.h>
#include <asm/div64.h>
-#include <asm/x86_init.h>
#include <asm/hypervisor.h>
+#include <asm/svm.h>
#include <asm/timer.h>
-#include <asm/apic.h>
#include <asm/vmware.h>
-#include <asm/svm.h>
+#include <asm/x86_init.h>
#undef pr_fmt
#define pr_fmt(fmt) "vmware: " fmt
diff --git a/arch/x86/kernel/jailhouse.c b/arch/x86/kernel/jailhouse.c
index 9e9a591a5fec..f38d4516f7e7 100644
--- a/arch/x86/kernel/jailhouse.c
+++ b/arch/x86/kernel/jailhouse.c
@@ -8,22 +8,23 @@
* Jan Kiszka <jan.kiszka@siemens.com>
*/
+#include <linux/acpi.h>
#include <linux/acpi_pmtmr.h>
#include <linux/kernel.h>
#include <linux/reboot.h>
#include <linux/serial_8250.h>
-#include <linux/acpi.h>
-#include <asm/apic.h>
-#include <asm/io_apic.h>
+
#include <asm/acpi.h>
+#include <asm/apic.h>
#include <asm/cpu.h>
#include <asm/hypervisor.h>
#include <asm/i8259.h>
+#include <asm/io_apic.h>
#include <asm/irqdomain.h>
+#include <asm/jailhouse_para.h>
#include <asm/pci_x86.h>
#include <asm/reboot.h>
#include <asm/setup.h>
-#include <asm/jailhouse_para.h>
static struct jailhouse_setup_data setup_data;
#define SETUP_DATA_V1_LEN (sizeof(setup_data.hdr) + sizeof(setup_data.v1))
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index 921c1c783bc1..cd3520a6248b 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -9,42 +9,43 @@
#define pr_fmt(fmt) "kvm-guest: " fmt
+#include <linux/cc_platform.h>
#include <linux/context_tracking.h>
+#include <linux/cpu.h>
+#include <linux/efi.h>
+#include <linux/hardirq.h>
+#include <linux/hash.h>
+#include <linux/highmem.h>
#include <linux/init.h>
#include <linux/irq.h>
#include <linux/kernel.h>
+#include <linux/kprobes.h>
#include <linux/kvm_para.h>
-#include <linux/cpu.h>
#include <linux/mm.h>
-#include <linux/highmem.h>
-#include <linux/hardirq.h>
+#include <linux/nmi.h>
#include <linux/notifier.h>
#include <linux/reboot.h>
-#include <linux/hash.h>
#include <linux/sched.h>
#include <linux/slab.h>
-#include <linux/kprobes.h>
-#include <linux/nmi.h>
#include <linux/swait.h>
#include <linux/syscore_ops.h>
-#include <linux/cc_platform.h>
-#include <linux/efi.h>
-#include <asm/timer.h>
-#include <asm/cpu.h>
-#include <asm/traps.h>
-#include <asm/desc.h>
-#include <asm/tlbflush.h>
+
#include <asm/apic.h>
#include <asm/apicdef.h>
-#include <asm/hypervisor.h>
-#include <asm/mtrr.h>
-#include <asm/tlb.h>
+#include <asm/cpu.h>
#include <asm/cpuidle_haltpoll.h>
+#include <asm/desc.h>
+#include <asm/e820/api.h>
+#include <asm/hypervisor.h>
#include <asm/msr.h>
+#include <asm/mtrr.h>
#include <asm/ptrace.h>
#include <asm/reboot.h>
#include <asm/svm.h>
-#include <asm/e820/api.h>
+#include <asm/timer.h>
+#include <asm/tlb.h>
+#include <asm/tlbflush.h>
+#include <asm/traps.h>
DEFINE_STATIC_KEY_FALSE_RO(kvm_async_pf_enabled);
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index ab3e172dcc69..3d745cd25a43 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -6,34 +6,34 @@
2007 - x86_64 support added by Glauber de Oliveira Costa, Red Hat Inc
*/
+#include <linux/bcd.h>
+#include <linux/efi.h>
#include <linux/errno.h>
-#include <linux/init.h>
#include <linux/export.h>
-#include <linux/efi.h>
-#include <linux/bcd.h>
#include <linux/highmem.h>
+#include <linux/init.h>
#include <linux/kprobes.h>
#include <linux/pgtable.h>
#include <linux/static_call.h>
+#include <asm/apic.h>
#include <asm/bug.h>
-#include <asm/paravirt.h>
#include <asm/debugreg.h>
+#include <asm/delay.h>
#include <asm/desc.h>
+#include <asm/fixmap.h>
+#include <asm/gsseg.h>
+#include <asm/io_bitmap.h>
+#include <asm/irq.h>
+#include <asm/msr.h>
+#include <asm/paravirt.h>
+#include <asm/pgalloc.h>
#include <asm/setup.h>
+#include <asm/special_insns.h>
#include <asm/time.h>
-#include <asm/pgalloc.h>
-#include <asm/irq.h>
-#include <asm/delay.h>
-#include <asm/fixmap.h>
-#include <asm/apic.h>
-#include <asm/tlbflush.h>
#include <asm/timer.h>
-#include <asm/special_insns.h>
#include <asm/tlb.h>
-#include <asm/io_bitmap.h>
-#include <asm/gsseg.h>
-#include <asm/msr.h>
+#include <asm/tlbflush.h>
/* stub always returning 0. */
DEFINE_ASM_FUNC(paravirt_ret0, "xor %eax,%eax", .entry.text);
diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
index 4e06e2e89a8f..08bd094f2945 100644
--- a/arch/x86/kvm/mmu/mmu.c
+++ b/arch/x86/kvm/mmu/mmu.c
@@ -16,47 +16,47 @@
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-#include "irq.h"
-#include "ioapic.h"
-#include "mmu.h"
-#include "mmu_internal.h"
-#include "tdp_mmu.h"
-#include "x86.h"
-#include "kvm_cache_regs.h"
-#include "smm.h"
-#include "kvm_emulate.h"
-#include "page_track.h"
-#include "cpuid.h"
-#include "spte.h"
-
-#include <linux/kvm_host.h>
-#include <linux/types.h>
-#include <linux/string.h>
-#include <linux/mm.h>
-#include <linux/highmem.h>
-#include <linux/moduleparam.h>
-#include <linux/export.h>
-#include <linux/swap.h>
-#include <linux/hugetlb.h>
#include <linux/compiler.h>
-#include <linux/srcu.h>
-#include <linux/slab.h>
-#include <linux/sched/signal.h>
-#include <linux/uaccess.h>
+#include <linux/export.h>
#include <linux/hash.h>
+#include <linux/highmem.h>
+#include <linux/hugetlb.h>
#include <linux/kern_levels.h>
#include <linux/kstrtox.h>
#include <linux/kthread.h>
+#include <linux/kvm_host.h>
+#include <linux/mm.h>
+#include <linux/moduleparam.h>
+#include <linux/sched/signal.h>
+#include <linux/slab.h>
+#include <linux/srcu.h>
+#include <linux/string.h>
+#include <linux/swap.h>
+#include <linux/types.h>
+#include <linux/uaccess.h>
#include <linux/wordpart.h>
-#include <asm/page.h>
-#include <asm/memtype.h>
#include <asm/cmpxchg.h>
#include <asm/io.h>
+#include <asm/memtype.h>
+#include <asm/page.h>
#include <asm/set_memory.h>
#include <asm/spec-ctrl.h>
#include <asm/vmx.h>
+#include "cpuid.h"
+#include "ioapic.h"
+#include "irq.h"
+#include "kvm_cache_regs.h"
+#include "kvm_emulate.h"
+#include "mmu.h"
+#include "mmu_internal.h"
+#include "page_track.h"
+#include "smm.h"
+#include "spte.h"
+#include "tdp_mmu.h"
+#include "x86.h"
+
#include "trace.h"
static bool nx_hugepage_mitigation_hard_disabled;
diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c
index b201f77fcd49..d64392bc0228 100644
--- a/arch/x86/kvm/svm/sev.c
+++ b/arch/x86/kvm/svm/sev.c
@@ -8,33 +8,34 @@
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-#include <linux/kvm_types.h>
-#include <linux/kvm_host.h>
-#include <linux/kernel.h>
#include <linux/highmem.h>
-#include <linux/psp.h>
-#include <linux/psp-sev.h>
-#include <linux/pagemap.h>
-#include <linux/swap.h>
+#include <linux/kernel.h>
+#include <linux/kvm_host.h>
+#include <linux/kvm_types.h>
#include <linux/misc_cgroup.h>
+#include <linux/pagemap.h>
#include <linux/processor.h>
+#include <linux/psp-sev.h>
+#include <linux/psp.h>
+#include <linux/swap.h>
#include <linux/trace_events.h>
+
#include <uapi/linux/sev-guest.h>
-#include <asm/pkru.h>
-#include <asm/trapnr.h>
+#include <asm/debugreg.h>
#include <asm/fpu/xcr.h>
#include <asm/fpu/xstate.h>
-#include <asm/debugreg.h>
#include <asm/msr.h>
+#include <asm/pkru.h>
#include <asm/sev.h>
+#include <asm/trapnr.h>
+#include "cpuid.h"
#include "mmu.h"
-#include "x86.h"
#include "svm.h"
#include "svm_ops.h"
-#include "cpuid.h"
#include "trace.h"
+#include "x86.h"
#define GHCB_VERSION_MAX 2ULL
#define GHCB_VERSION_DEFAULT 2ULL
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index ab9b947dbf4f..d8504af36836 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -2,48 +2,48 @@
#include <linux/kvm_host.h>
+#include "cpuid.h"
#include "irq.h"
-#include "mmu.h"
#include "kvm_cache_regs.h"
-#include "x86.h"
-#include "smm.h"
-#include "cpuid.h"
+#include "mmu.h"
#include "pmu.h"
+#include "smm.h"
+#include "x86.h"
-#include <linux/module.h>
-#include <linux/mod_devicetable.h>
-#include <linux/kernel.h>
-#include <linux/vmalloc.h>
-#include <linux/highmem.h>
#include <linux/amd-iommu.h>
-#include <linux/sched.h>
-#include <linux/trace_events.h>
-#include <linux/slab.h>
+#include <linux/cc_platform.h>
+#include <linux/file.h>
#include <linux/hashtable.h>
+#include <linux/highmem.h>
+#include <linux/kernel.h>
+#include <linux/mod_devicetable.h>
+#include <linux/module.h>
+#include <linux/mutex.h>
#include <linux/objtool.h>
-#include <linux/psp-sev.h>
-#include <linux/file.h>
#include <linux/pagemap.h>
-#include <linux/swap.h>
+#include <linux/psp-sev.h>
#include <linux/rwsem.h>
-#include <linux/cc_platform.h>
+#include <linux/sched.h>
+#include <linux/slab.h>
#include <linux/smp.h>
#include <linux/string_choices.h>
-#include <linux/mutex.h>
+#include <linux/swap.h>
+#include <linux/trace_events.h>
+#include <linux/vmalloc.h>
#include <asm/apic.h>
-#include <asm/msr.h>
-#include <asm/perf_event.h>
-#include <asm/tlbflush.h>
-#include <asm/desc.h>
+#include <asm/cpu_device_id.h>
#include <asm/debugreg.h>
-#include <asm/kvm_para.h>
+#include <asm/desc.h>
+#include <asm/fpu/api.h>
#include <asm/irq_remapping.h>
+#include <asm/kvm_para.h>
+#include <asm/msr.h>
+#include <asm/perf_event.h>
+#include <asm/reboot.h>
#include <asm/spec-ctrl.h>
-#include <asm/cpu_device_id.h>
+#include <asm/tlbflush.h>
#include <asm/traps.h>
-#include <asm/reboot.h>
-#include <asm/fpu/api.h>
#include <trace/events/ipi.h>
diff --git a/arch/x86/kvm/vmx/pmu_intel.c b/arch/x86/kvm/vmx/pmu_intel.c
index bbf4509f32d0..64208fe5aa96 100644
--- a/arch/x86/kvm/vmx/pmu_intel.c
+++ b/arch/x86/kvm/vmx/pmu_intel.c
@@ -10,17 +10,19 @@
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-#include <linux/types.h>
#include <linux/kvm_host.h>
#include <linux/perf_event.h>
+#include <linux/types.h>
+
#include <asm/msr.h>
#include <asm/perf_event.h>
-#include "x86.h"
+
#include "cpuid.h"
#include "lapic.h"
#include "nested.h"
#include "pmu.h"
#include "tdx.h"
+#include "x86.h"
/*
* Perf's "BASE" is wildly misleading, architectural PMUs use bits 31:16 of ECX
diff --git a/arch/x86/kvm/vmx/sgx.c b/arch/x86/kvm/vmx/sgx.c
index df1d0cf76947..f70128063bd5 100644
--- a/arch/x86/kvm/vmx/sgx.c
+++ b/arch/x86/kvm/vmx/sgx.c
@@ -5,11 +5,11 @@
#include <asm/msr.h>
#include <asm/sgx.h>
-#include "x86.h"
#include "kvm_cache_regs.h"
#include "nested.h"
#include "sgx.h"
#include "vmx.h"
+#include "x86.h"
bool __read_mostly enable_sgx = 1;
module_param_named(sgx, enable_sgx, bool, 0444);
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index 191a9ed0da22..2bf9d4326a19 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -14,21 +14,21 @@
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+#include <linux/entry-kvm.h>
#include <linux/highmem.h>
#include <linux/hrtimer.h>
#include <linux/kernel.h>
#include <linux/kvm_host.h>
+#include <linux/mm.h>
+#include <linux/mod_devicetable.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
-#include <linux/mod_devicetable.h>
-#include <linux/mm.h>
#include <linux/objtool.h>
#include <linux/sched.h>
#include <linux/sched/smt.h>
#include <linux/slab.h>
#include <linux/tboot.h>
#include <linux/trace_events.h>
-#include <linux/entry-kvm.h>
#include <asm/apic.h>
#include <asm/asm.h>
@@ -42,12 +42,12 @@
#include <asm/idtentry.h>
#include <asm/io.h>
#include <asm/irq_remapping.h>
-#include <asm/reboot.h>
-#include <asm/perf_event.h>
#include <asm/mmu_context.h>
#include <asm/mshyperv.h>
#include <asm/msr.h>
#include <asm/mwait.h>
+#include <asm/perf_event.h>
+#include <asm/reboot.h>
#include <asm/spec-ctrl.h>
#include <asm/vmx.h>
@@ -57,23 +57,23 @@
#include "common.h"
#include "cpuid.h"
#include "hyperv.h"
-#include "kvm_onhyperv.h"
#include "irq.h"
#include "kvm_cache_regs.h"
+#include "kvm_onhyperv.h"
#include "lapic.h"
#include "mmu.h"
#include "nested.h"
#include "pmu.h"
+#include "posted_intr.h"
#include "sgx.h"
+#include "smm.h"
#include "trace.h"
#include "vmcs.h"
#include "vmcs12.h"
#include "vmx.h"
+#include "vmx_onhyperv.h"
#include "x86.h"
#include "x86_ops.h"
-#include "smm.h"
-#include "vmx_onhyperv.h"
-#include "posted_intr.h"
MODULE_AUTHOR("Qumranet");
MODULE_DESCRIPTION("KVM support for VMX (Intel VT-x) extensions");
diff --git a/arch/x86/mm/pti.c b/arch/x86/mm/pti.c
index c0c40b67524e..9d5d57a84a3c 100644
--- a/arch/x86/mm/pti.c
+++ b/arch/x86/mm/pti.c
@@ -18,26 +18,27 @@
* Mostly rewritten by Thomas Gleixner <tglx@linutronix.de> and
* Andy Lutomirsky <luto@amacapital.net>
*/
-#include <linux/kernel.h>
-#include <linux/errno.h>
-#include <linux/string.h>
-#include <linux/types.h>
+
#include <linux/bug.h>
+#include <linux/cpu.h>
+#include <linux/errno.h>
#include <linux/init.h>
-#include <linux/spinlock.h>
+#include <linux/kernel.h>
#include <linux/mm.h>
+#include <linux/spinlock.h>
+#include <linux/string.h>
+#include <linux/types.h>
#include <linux/uaccess.h>
-#include <linux/cpu.h>
+#include <asm/cmdline.h>
#include <asm/cpufeature.h>
+#include <asm/desc.h>
#include <asm/hypervisor.h>
-#include <asm/vsyscall.h>
-#include <asm/cmdline.h>
#include <asm/pti.h>
-#include <asm/tlbflush.h>
-#include <asm/desc.h>
#include <asm/sections.h>
#include <asm/set_memory.h>
+#include <asm/tlbflush.h>
+#include <asm/vsyscall.h>
#undef pr_fmt
#define pr_fmt(fmt) "Kernel/User page tables isolation: " fmt
diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c
index b8755cde2419..e23c7f730f07 100644
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -10,25 +10,26 @@
* Konrad Rzeszutek Wilk <konrad.wilk@oracle.com>
* Stefano Stabellini <stefano.stabellini@eu.citrix.com>
*/
+
+#include <linux/acpi.h>
#include <linux/export.h>
#include <linux/init.h>
+#include <linux/io.h>
#include <linux/pci.h>
-#include <linux/acpi.h>
-#include <linux/io.h>
+#include <xen/events.h>
+#include <xen/features.h>
+#include <xen/pci.h>
+
+#include <asm/acpi.h>
+#include <asm/apic.h>
+#include <asm/i8259.h>
#include <asm/io_apic.h>
#include <asm/pci_x86.h>
+#include <asm/xen/cpuid.h>
#include <asm/xen/hypervisor.h>
-
-#include <xen/features.h>
-#include <xen/events.h>
-#include <xen/pci.h>
#include <asm/xen/pci.h>
-#include <asm/xen/cpuid.h>
-#include <asm/apic.h>
-#include <asm/acpi.h>
-#include <asm/i8259.h>
static int xen_pcifront_enable_irq(struct pci_dev *dev)
{
@@ -583,4 +584,3 @@ int __init pci_xen_initial_domain(void)
return 0;
}
#endif
-
diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
index fe57ff85d004..6b736b18826b 100644
--- a/arch/x86/xen/enlighten_hvm.c
+++ b/arch/x86/xen/enlighten_hvm.c
@@ -6,22 +6,22 @@
#include <linux/memblock.h>
#include <linux/virtio_anchor.h>
-#include <xen/features.h>
#include <xen/events.h>
+#include <xen/features.h>
#include <xen/hvm.h>
#include <xen/interface/hvm/hvm_op.h>
#include <xen/interface/memory.h>
#include <asm/apic.h>
#include <asm/cpu.h>
-#include <asm/smp.h>
+#include <asm/e820/api.h>
+#include <asm/early_ioremap.h>
+#include <asm/hypervisor.h>
+#include <asm/idtentry.h>
#include <asm/io_apic.h>
#include <asm/reboot.h>
#include <asm/setup.h>
-#include <asm/idtentry.h>
-#include <asm/hypervisor.h>
-#include <asm/e820/api.h>
-#include <asm/early_ioremap.h>
+#include <asm/smp.h>
#include <asm/xen/cpuid.h>
#include <asm/xen/hypervisor.h>
diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index 8f89ce0b67e3..fae48c14ec45 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -1,14 +1,16 @@
// SPDX-License-Identifier: GPL-2.0
-#include <linux/types.h>
+
#include <linux/interrupt.h>
+#include <linux/types.h>
-#include <asm/msr.h>
-#include <asm/xen/hypercall.h>
-#include <xen/xen.h>
-#include <xen/page.h>
#include <xen/interface/xen.h>
#include <xen/interface/vcpu.h>
#include <xen/interface/xenpmu.h>
+#include <xen/page.h>
+#include <xen/xen.h>
+
+#include <asm/msr.h>
+#include <asm/xen/hypercall.h>
#include "xen-ops.h"
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index 96521b1874ac..229f8161eeab 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -8,24 +8,26 @@
*
* Jeremy Fitzhardinge <jeremy@xensource.com>, XenSource Inc, 2007
*/
-#include <linux/kernel.h>
-#include <linux/interrupt.h>
-#include <linux/clocksource.h>
+
#include <linux/clockchips.h>
+#include <linux/clocksource.h>
#include <linux/gfp.h>
-#include <linux/slab.h>
+#include <linux/interrupt.h>
+#include <linux/kernel.h>
#include <linux/pvclock_gtod.h>
+#include <linux/slab.h>
#include <linux/timekeeper_internal.h>
-#include <asm/pvclock.h>
-#include <asm/xen/hypervisor.h>
-#include <asm/xen/hypercall.h>
-#include <asm/xen/cpuid.h>
-
#include <xen/events.h>
#include <xen/features.h>
-#include <xen/interface/xen.h>
#include <xen/interface/vcpu.h>
+#include <xen/interface/xen.h>
+
+#include <asm/pvclock.h>
+
+#include <asm/xen/cpuid.h>
+#include <asm/xen/hypercall.h>
+#include <asm/xen/hypervisor.h>
#include "xen-ops.h"
--
2.50.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* Re: [PATCH v3 3/6] x86: Reorder headers alphabetically
2025-07-22 6:54 ` [PATCH v3 3/6] x86: Reorder headers alphabetically Ahmed S. Darwish
@ 2025-07-22 14:18 ` Sean Christopherson
0 siblings, 0 replies; 8+ messages in thread
From: Sean Christopherson @ 2025-07-22 14:18 UTC (permalink / raw)
To: Ahmed S. Darwish
Cc: Borislav Petkov, Ingo Molnar, Dave Hansen, Thomas Gleixner,
Andrew Cooper, Paolo Bonzini, Vitaly Kuznetsov, Juergen Gross,
Boris Ostrovsky, Greg Kroah-Hartman, John Ogness, x86, kvm,
x86-cpuid, LKML
On Tue, Jul 22, 2025, Ahmed S. Darwish wrote:
> Multiple x86 source files use the cpuid_*() macros, but implicitly
> include the main CPUID API header.
>
> Sort their include lines so that <asm/cpuid/api.h> can be explicitly
> included next.
>
> Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de>
> ---
> arch/x86/boot/startup/sme.c | 8 +--
> arch/x86/coco/tdx/tdx.c | 5 +-
> arch/x86/events/amd/uncore.c | 14 +++---
> arch/x86/events/zhaoxin/core.c | 11 ++---
> arch/x86/kernel/apic/apic.c | 70 +++++++++++++--------------
> arch/x86/kernel/cpu/amd.c | 25 +++++-----
> arch/x86/kernel/cpu/mce/core.c | 62 ++++++++++++------------
> arch/x86/kernel/cpu/microcode/amd.c | 12 ++---
> arch/x86/kernel/cpu/microcode/core.c | 22 ++++-----
> arch/x86/kernel/cpu/microcode/intel.c | 11 +++--
> arch/x86/kernel/cpu/mshyperv.c | 28 ++++++-----
> arch/x86/kernel/cpu/resctrl/core.c | 5 +-
> arch/x86/kernel/cpu/scattered.c | 2 +-
> arch/x86/kernel/cpu/topology_common.c | 2 +-
> arch/x86/kernel/cpu/vmware.c | 13 ++---
> arch/x86/kernel/jailhouse.c | 9 ++--
> arch/x86/kernel/kvm.c | 35 +++++++-------
> arch/x86/kernel/paravirt.c | 28 +++++------
> arch/x86/kvm/mmu/mmu.c | 56 ++++++++++-----------
> arch/x86/kvm/svm/sev.c | 25 +++++-----
> arch/x86/kvm/svm/svm.c | 50 +++++++++----------
> arch/x86/kvm/vmx/pmu_intel.c | 6 ++-
> arch/x86/kvm/vmx/sgx.c | 2 +-
> arch/x86/kvm/vmx/vmx.c | 18 +++----
If this series is squeezed into Linus' tree just before rc1, I suppose I'm fine
with this patch. But I am NOT providing an ack for general inclusion, because
the potential for pain is not worth the warm fuzzies we get by having sorted
includes.
^ permalink raw reply [flat|nested] 8+ messages in thread
* [PATCH v3 4/6] drivers: Reorder headers alphabetically
2025-07-22 6:54 [PATCH v3 0/6] x86: Disentangle <asm/processor.h> dependency on CPUID headers Ahmed S. Darwish
` (2 preceding siblings ...)
2025-07-22 6:54 ` [PATCH v3 3/6] x86: Reorder headers alphabetically Ahmed S. Darwish
@ 2025-07-22 6:54 ` Ahmed S. Darwish
2025-07-22 6:54 ` [PATCH v3 5/6] treewide: Explicitly include the x86 CPUID headers Ahmed S. Darwish
2025-07-22 6:54 ` [PATCH v3 6/6] x86/cpu: <asm/processor.h>: Do not include the CPUID API header Ahmed S. Darwish
5 siblings, 0 replies; 8+ messages in thread
From: Ahmed S. Darwish @ 2025-07-22 6:54 UTC (permalink / raw)
To: Borislav Petkov, Ingo Molnar, Dave Hansen
Cc: Thomas Gleixner, Andrew Cooper, Paolo Bonzini, Vitaly Kuznetsov,
Sean Christopherson, Juergen Gross, Boris Ostrovsky,
Greg Kroah-Hartman, John Ogness, x86, kvm, x86-cpuid, LKML,
Ahmed S. Darwish
Multiple drivers use the cpuid_*() macros, but implicitly include the
main CPUID API header.
Sort their include lines so that <asm/cpuid/api.h> can be explicitly
included next.
Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de>
---
drivers/char/agp/efficeon-agp.c | 9 ++++---
drivers/cpufreq/longrun.c | 6 ++---
drivers/cpufreq/powernow-k7.c | 13 +++++----
drivers/cpufreq/powernow-k8.c | 16 +++++------
drivers/cpufreq/speedstep-lib.c | 5 ++--
drivers/hwmon/fam15h_power.c | 13 ++++-----
drivers/hwmon/k8temp.c | 11 ++++----
.../net/ethernet/stmicro/stmmac/dwmac-intel.c | 3 ++-
drivers/ras/amd/fmpm.c | 2 +-
drivers/thermal/intel/x86_pkg_temp_thermal.c | 14 +++++-----
drivers/xen/events/events_base.c | 27 ++++++++++---------
drivers/xen/grant-table.c | 14 +++++-----
drivers/xen/xenbus/xenbus_xs.c | 20 +++++++-------
13 files changed, 80 insertions(+), 73 deletions(-)
diff --git a/drivers/char/agp/efficeon-agp.c b/drivers/char/agp/efficeon-agp.c
index 0d25bbdc7e6a..79f956d7b17d 100644
--- a/drivers/char/agp/efficeon-agp.c
+++ b/drivers/char/agp/efficeon-agp.c
@@ -20,13 +20,14 @@
* - tested with c3/c4 enabled (with the mobility m9 card)
*/
-#include <linux/module.h>
-#include <linux/pci.h>
-#include <linux/init.h>
#include <linux/agp_backend.h>
#include <linux/gfp.h>
-#include <linux/page-flags.h>
+#include <linux/init.h>
#include <linux/mm.h>
+#include <linux/module.h>
+#include <linux/page-flags.h>
+#include <linux/pci.h>
+
#include "agp.h"
#include "intel-agp.h"
diff --git a/drivers/cpufreq/longrun.c b/drivers/cpufreq/longrun.c
index 1caaec7c280b..263c48b8f628 100644
--- a/drivers/cpufreq/longrun.c
+++ b/drivers/cpufreq/longrun.c
@@ -5,15 +5,15 @@
* BIG FAT DISCLAIMER: Work in progress code. Possibly *dangerous*
*/
+#include <linux/cpufreq.h>
+#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/cpufreq.h>
#include <linux/timex.h>
+#include <asm/cpu_device_id.h>
#include <asm/msr.h>
#include <asm/processor.h>
-#include <asm/cpu_device_id.h>
static struct cpufreq_driver longrun_driver;
diff --git a/drivers/cpufreq/powernow-k7.c b/drivers/cpufreq/powernow-k7.c
index 31039330a3ba..0608040fcd1e 100644
--- a/drivers/cpufreq/powernow-k7.c
+++ b/drivers/cpufreq/powernow-k7.c
@@ -15,20 +15,20 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+#include <linux/cpufreq.h>
+#include <linux/dmi.h>
+#include <linux/init.h>
+#include <linux/io.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
-#include <linux/init.h>
-#include <linux/cpufreq.h>
#include <linux/slab.h>
#include <linux/string.h>
-#include <linux/dmi.h>
#include <linux/timex.h>
-#include <linux/io.h>
-#include <asm/timer.h> /* Needed for recalibrate_cpu_khz() */
-#include <asm/msr.h>
#include <asm/cpu_device_id.h>
+#include <asm/msr.h>
+#include <asm/timer.h> /* Needed for recalibrate_cpu_khz() */
#ifdef CONFIG_X86_POWERNOW_K7_ACPI
#include <linux/acpi.h>
@@ -691,4 +691,3 @@ MODULE_LICENSE("GPL");
late_initcall(powernow_init);
module_exit(powernow_exit);
-
diff --git a/drivers/cpufreq/powernow-k8.c b/drivers/cpufreq/powernow-k8.c
index f7512b4e923e..2b5cdd8f1c0a 100644
--- a/drivers/cpufreq/powernow-k8.c
+++ b/drivers/cpufreq/powernow-k8.c
@@ -26,22 +26,22 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+#include <linux/acpi.h>
+#include <linux/cpufreq.h>
+#include <linux/cpumask.h>
+#include <linux/delay.h>
+#include <linux/init.h>
+#include <linux/io.h>
#include <linux/kernel.h>
-#include <linux/smp.h>
#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/cpufreq.h>
+#include <linux/mutex.h>
#include <linux/slab.h>
+#include <linux/smp.h>
#include <linux/string.h>
-#include <linux/cpumask.h>
-#include <linux/io.h>
-#include <linux/delay.h>
#include <asm/msr.h>
#include <asm/cpu_device_id.h>
-#include <linux/acpi.h>
-#include <linux/mutex.h>
#include <acpi/processor.h>
#define VERSION "version 2.20.00"
diff --git a/drivers/cpufreq/speedstep-lib.c b/drivers/cpufreq/speedstep-lib.c
index 0b66df4ed513..f08817331aec 100644
--- a/drivers/cpufreq/speedstep-lib.c
+++ b/drivers/cpufreq/speedstep-lib.c
@@ -9,14 +9,15 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+#include <linux/cpufreq.h>
+#include <linux/init.h>
#include <linux/kernel.h>
#include <linux/module.h>
#include <linux/moduleparam.h>
-#include <linux/init.h>
-#include <linux/cpufreq.h>
#include <asm/msr.h>
#include <asm/tsc.h>
+
#include "speedstep-lib.h"
#define PFX "speedstep-lib: "
diff --git a/drivers/hwmon/fam15h_power.c b/drivers/hwmon/fam15h_power.c
index 8ecebea53651..5a5674e85f63 100644
--- a/drivers/hwmon/fam15h_power.c
+++ b/drivers/hwmon/fam15h_power.c
@@ -6,20 +6,21 @@
* Author: Andreas Herrmann <herrmann.der.user@googlemail.com>
*/
+#include <linux/bitops.h>
+#include <linux/cpu.h>
+#include <linux/cpumask.h>
#include <linux/err.h>
-#include <linux/hwmon.h>
#include <linux/hwmon-sysfs.h>
+#include <linux/hwmon.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/pci.h>
-#include <linux/bitops.h>
-#include <linux/cpu.h>
-#include <linux/cpumask.h>
-#include <linux/time.h>
#include <linux/sched.h>
+#include <linux/time.h>
#include <linux/topology.h>
-#include <asm/processor.h>
+
#include <asm/msr.h>
+#include <asm/processor.h>
MODULE_DESCRIPTION("AMD Family 15h CPU processor power monitor");
MODULE_AUTHOR("Andreas Herrmann <herrmann.der.user@googlemail.com>");
diff --git a/drivers/hwmon/k8temp.c b/drivers/hwmon/k8temp.c
index 2b80ac410cd1..8c1efce9a04b 100644
--- a/drivers/hwmon/k8temp.c
+++ b/drivers/hwmon/k8temp.c
@@ -7,13 +7,14 @@
* Inspired from the w83785 and amd756 drivers.
*/
-#include <linux/module.h>
-#include <linux/init.h>
-#include <linux/slab.h>
-#include <linux/pci.h>
-#include <linux/hwmon.h>
#include <linux/err.h>
+#include <linux/hwmon.h>
+#include <linux/init.h>
+#include <linux/module.h>
#include <linux/mutex.h>
+#include <linux/pci.h>
+#include <linux/slab.h>
+
#include <asm/processor.h>
#define TEMP_FROM_REG(val) (((((val) >> 16) & 0xff) - 49) * 1000)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c
index ea33ae39be6b..444ee53566c4 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c
@@ -3,9 +3,10 @@
*/
#include <linux/clk-provider.h>
-#include <linux/pci.h>
#include <linux/dmi.h>
+#include <linux/pci.h>
#include <linux/platform_data/x86/intel_pmc_ipc.h>
+
#include "dwmac-intel.h"
#include "dwmac4.h"
#include "stmmac.h"
diff --git a/drivers/ras/amd/fmpm.c b/drivers/ras/amd/fmpm.c
index 8877c6ff64c4..775c5231be57 100644
--- a/drivers/ras/amd/fmpm.c
+++ b/drivers/ras/amd/fmpm.c
@@ -46,8 +46,8 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
#include <linux/cper.h>
-#include <linux/ras.h>
#include <linux/cpu.h>
+#include <linux/ras.h>
#include <acpi/apei.h>
diff --git a/drivers/thermal/intel/x86_pkg_temp_thermal.c b/drivers/thermal/intel/x86_pkg_temp_thermal.c
index 3fc679b6f11b..c843cb5fc5c3 100644
--- a/drivers/thermal/intel/x86_pkg_temp_thermal.c
+++ b/drivers/thermal/intel/x86_pkg_temp_thermal.c
@@ -5,19 +5,19 @@
*/
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-#include <linux/module.h>
+#include <linux/cpu.h>
+#include <linux/debugfs.h>
+#include <linux/device.h>
+#include <linux/err.h>
#include <linux/init.h>
#include <linux/intel_tcc.h>
-#include <linux/err.h>
+#include <linux/module.h>
#include <linux/param.h>
-#include <linux/device.h>
#include <linux/platform_device.h>
-#include <linux/cpu.h>
-#include <linux/smp.h>
-#include <linux/slab.h>
#include <linux/pm.h>
+#include <linux/slab.h>
+#include <linux/smp.h>
#include <linux/thermal.h>
-#include <linux/debugfs.h>
#include <asm/cpu_device_id.h>
#include <asm/msr.h>
diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index 41309d38f78c..727a78bfdf02 100644
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -24,40 +24,42 @@
#define pr_fmt(fmt) "xen:" KBUILD_MODNAME ": " fmt
-#include <linux/linkage.h>
+#include <linux/atomic.h>
+#include <linux/cpuhotplug.h>
#include <linux/interrupt.h>
#include <linux/irq.h>
-#include <linux/moduleparam.h>
-#include <linux/string.h>
-#include <linux/memblock.h>
-#include <linux/slab.h>
#include <linux/irqnr.h>
+#include <linux/ktime.h>
+#include <linux/linkage.h>
+#include <linux/memblock.h>
+#include <linux/moduleparam.h>
#include <linux/pci.h>
#include <linux/rcupdate.h>
+#include <linux/slab.h>
#include <linux/spinlock.h>
-#include <linux/cpuhotplug.h>
-#include <linux/atomic.h>
-#include <linux/ktime.h>
+#include <linux/string.h>
#ifdef CONFIG_X86
#include <asm/desc.h>
-#include <asm/ptrace.h>
+#include <asm/i8259.h>
#include <asm/idtentry.h>
-#include <asm/irq.h>
#include <asm/io_apic.h>
-#include <asm/i8259.h>
+#include <asm/irq.h>
+#include <asm/ptrace.h>
#include <asm/xen/cpuid.h>
#include <asm/xen/pci.h>
#endif
+
+#include <asm/hw_irq.h>
#include <asm/sync_bitops.h>
#include <asm/xen/hypercall.h>
#include <asm/xen/hypervisor.h>
-#include <xen/page.h>
#include <xen/xen.h>
#include <xen/hvm.h>
#include <xen/xen-ops.h>
#include <xen/events.h>
+#include <xen/page.h>
#include <xen/interface/xen.h>
#include <xen/interface/event_channel.h>
#include <xen/interface/hvm/hvm_op.h>
@@ -66,7 +68,6 @@
#include <xen/interface/sched.h>
#include <xen/interface/vcpu.h>
#include <xen/xenbus.h>
-#include <asm/hw_irq.h>
#include "events_internal.h"
diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
index 04a6b470b15d..a9ff69f08eb8 100644
--- a/drivers/xen/grant-table.c
+++ b/drivers/xen/grant-table.c
@@ -34,18 +34,18 @@
#define pr_fmt(fmt) "xen:" KBUILD_MODNAME ": " fmt
#include <linux/bitmap.h>
+#include <linux/delay.h>
+#include <linux/hardirq.h>
+#include <linux/io.h>
#include <linux/memblock.h>
-#include <linux/sched.h>
#include <linux/mm.h>
+#include <linux/moduleparam.h>
+#include <linux/ratelimit.h>
+#include <linux/sched.h>
#include <linux/slab.h>
-#include <linux/vmalloc.h>
#include <linux/uaccess.h>
-#include <linux/io.h>
-#include <linux/delay.h>
-#include <linux/hardirq.h>
+#include <linux/vmalloc.h>
#include <linux/workqueue.h>
-#include <linux/ratelimit.h>
-#include <linux/moduleparam.h>
#ifdef CONFIG_XEN_GRANT_DMA_ALLOC
#include <linux/dma-mapping.h>
#endif
diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
index dcf9182c8451..589585b05f8a 100644
--- a/drivers/xen/xenbus/xenbus_xs.c
+++ b/drivers/xen/xenbus/xenbus_xs.c
@@ -33,22 +33,24 @@
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
-#include <linux/unistd.h>
-#include <linux/errno.h>
-#include <linux/types.h>
-#include <linux/uio.h>
-#include <linux/kernel.h>
-#include <linux/string.h>
#include <linux/err.h>
-#include <linux/slab.h>
+#include <linux/errno.h>
#include <linux/fcntl.h>
+#include <linux/kernel.h>
#include <linux/kthread.h>
+#include <linux/mutex.h>
#include <linux/reboot.h>
#include <linux/rwsem.h>
-#include <linux/mutex.h>
+#include <linux/slab.h>
+#include <linux/string.h>
+#include <linux/types.h>
+#include <linux/uio.h>
+#include <linux/unistd.h>
+
#include <asm/xen/hypervisor.h>
-#include <xen/xenbus.h>
+
#include <xen/xen.h>
+#include <xen/xenbus.h>
#include "xenbus.h"
/*
--
2.50.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 5/6] treewide: Explicitly include the x86 CPUID headers
2025-07-22 6:54 [PATCH v3 0/6] x86: Disentangle <asm/processor.h> dependency on CPUID headers Ahmed S. Darwish
` (3 preceding siblings ...)
2025-07-22 6:54 ` [PATCH v3 4/6] drivers: " Ahmed S. Darwish
@ 2025-07-22 6:54 ` Ahmed S. Darwish
2025-07-22 6:54 ` [PATCH v3 6/6] x86/cpu: <asm/processor.h>: Do not include the CPUID API header Ahmed S. Darwish
5 siblings, 0 replies; 8+ messages in thread
From: Ahmed S. Darwish @ 2025-07-22 6:54 UTC (permalink / raw)
To: Borislav Petkov, Ingo Molnar, Dave Hansen
Cc: Thomas Gleixner, Andrew Cooper, Paolo Bonzini, Vitaly Kuznetsov,
Sean Christopherson, Juergen Gross, Boris Ostrovsky,
Greg Kroah-Hartman, John Ogness, x86, kvm, x86-cpuid, LKML,
Ahmed S. Darwish
Modify all CPUID call sites which implicitly include any of the CPUID
headers to explicitly include them instead.
For arch/x86/kvm/reverse_cpuid.h, just include <asm/cpuid/types.h> since
it references the CPUID_EAX..EDX symbols without using any of the CPUID
APIs.
Note, adding explicit CPUID includes for all call sites allows removing
the <asm/cpuid/api.h> include from <asm/processor.h> next. This way, the
CPUID API header can include <asm/procesor.h> at a later step without
introducing a circular dependency.
Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de>
---
arch/x86/boot/compressed/pgtable_64.c | 1 +
arch/x86/boot/startup/sme.c | 1 +
arch/x86/coco/tdx/tdx.c | 1 +
arch/x86/events/amd/core.c | 2 ++
arch/x86/events/amd/ibs.c | 1 +
arch/x86/events/amd/lbr.c | 2 ++
arch/x86/events/amd/power.c | 3 +++
arch/x86/events/amd/uncore.c | 1 +
arch/x86/events/intel/core.c | 1 +
arch/x86/events/intel/lbr.c | 1 +
arch/x86/events/zhaoxin/core.c | 1 +
arch/x86/include/asm/acrn.h | 2 ++
arch/x86/include/asm/microcode.h | 1 +
arch/x86/include/asm/xen/hypervisor.h | 1 +
arch/x86/kernel/apic/apic.c | 1 +
arch/x86/kernel/cpu/amd.c | 1 +
arch/x86/kernel/cpu/centaur.c | 1 +
arch/x86/kernel/cpu/hygon.c | 1 +
arch/x86/kernel/cpu/mce/core.c | 1 +
arch/x86/kernel/cpu/mce/inject.c | 1 +
arch/x86/kernel/cpu/microcode/amd.c | 1 +
arch/x86/kernel/cpu/microcode/core.c | 1 +
arch/x86/kernel/cpu/microcode/intel.c | 1 +
arch/x86/kernel/cpu/mshyperv.c | 1 +
arch/x86/kernel/cpu/resctrl/core.c | 1 +
arch/x86/kernel/cpu/resctrl/monitor.c | 1 +
arch/x86/kernel/cpu/scattered.c | 1 +
arch/x86/kernel/cpu/sgx/driver.c | 3 +++
arch/x86/kernel/cpu/sgx/main.c | 3 +++
arch/x86/kernel/cpu/topology_amd.c | 1 +
arch/x86/kernel/cpu/topology_common.c | 1 +
arch/x86/kernel/cpu/topology_ext.c | 1 +
arch/x86/kernel/cpu/transmeta.c | 3 +++
arch/x86/kernel/cpu/vmware.c | 1 +
arch/x86/kernel/cpu/zhaoxin.c | 1 +
arch/x86/kernel/cpuid.c | 1 +
arch/x86/kernel/jailhouse.c | 1 +
arch/x86/kernel/kvm.c | 1 +
arch/x86/kernel/paravirt.c | 1 +
arch/x86/kvm/mmu/mmu.c | 1 +
arch/x86/kvm/mmu/spte.c | 1 +
arch/x86/kvm/reverse_cpuid.h | 2 ++
arch/x86/kvm/svm/sev.c | 1 +
arch/x86/kvm/svm/svm.c | 1 +
arch/x86/kvm/vmx/pmu_intel.c | 1 +
arch/x86/kvm/vmx/sgx.c | 1 +
arch/x86/kvm/vmx/vmx.c | 1 +
arch/x86/mm/pti.c | 1 +
arch/x86/pci/xen.c | 1 +
arch/x86/xen/enlighten_hvm.c | 1 +
arch/x86/xen/pmu.c | 1 +
arch/x86/xen/time.c | 1 +
drivers/char/agp/efficeon-agp.c | 2 ++
drivers/cpufreq/longrun.c | 1 +
drivers/cpufreq/powernow-k7.c | 1 +
drivers/cpufreq/powernow-k8.c | 1 +
drivers/cpufreq/speedstep-lib.c | 1 +
drivers/firmware/efi/libstub/x86-5lvl.c | 1 +
drivers/gpu/drm/gma500/mmu.c | 2 ++
drivers/hwmon/fam15h_power.c | 1 +
drivers/hwmon/k10temp.c | 2 ++
drivers/hwmon/k8temp.c | 1 +
drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c | 2 ++
drivers/ras/amd/fmpm.c | 1 +
drivers/thermal/intel/intel_hfi.c | 1 +
drivers/thermal/intel/x86_pkg_temp_thermal.c | 1 +
drivers/virt/acrn/hsm.c | 1 +
drivers/xen/events/events_base.c | 1 +
drivers/xen/grant-table.c | 1 +
drivers/xen/xenbus/xenbus_xs.c | 3 +++
70 files changed, 88 insertions(+)
diff --git a/arch/x86/boot/compressed/pgtable_64.c b/arch/x86/boot/compressed/pgtable_64.c
index bdd26050dff7..d94d98595780 100644
--- a/arch/x86/boot/compressed/pgtable_64.c
+++ b/arch/x86/boot/compressed/pgtable_64.c
@@ -2,6 +2,7 @@
#include "misc.h"
#include <asm/bootparam.h>
#include <asm/bootparam_utils.h>
+#include <asm/cpuid/api.h>
#include <asm/e820/types.h>
#include <asm/processor.h>
#include "../string.h"
diff --git a/arch/x86/boot/startup/sme.c b/arch/x86/boot/startup/sme.c
index 922b236be02f..6a58ab568390 100644
--- a/arch/x86/boot/startup/sme.c
+++ b/arch/x86/boot/startup/sme.c
@@ -40,6 +40,7 @@
#include <linux/mm.h>
#include <asm/coco.h>
+#include <asm/cpuid/api.h>
#include <asm/init.h>
#include <asm/sections.h>
#include <asm/setup.h>
diff --git a/arch/x86/coco/tdx/tdx.c b/arch/x86/coco/tdx/tdx.c
index 7bc11836c46a..4ed8ec642646 100644
--- a/arch/x86/coco/tdx/tdx.c
+++ b/arch/x86/coco/tdx/tdx.c
@@ -10,6 +10,7 @@
#include <linux/kexec.h>
#include <asm/coco.h>
+#include <asm/cpuid/api.h>
#include <asm/ia32.h>
#include <asm/insn.h>
#include <asm/insn-eval.h>
diff --git a/arch/x86/events/amd/core.c b/arch/x86/events/amd/core.c
index b20661b8621d..d28d45ceb707 100644
--- a/arch/x86/events/amd/core.c
+++ b/arch/x86/events/amd/core.c
@@ -7,8 +7,10 @@
#include <linux/slab.h>
#include <linux/delay.h>
#include <linux/jiffies.h>
+
#include <asm/apicdef.h>
#include <asm/apic.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include <asm/nmi.h>
diff --git a/arch/x86/events/amd/ibs.c b/arch/x86/events/amd/ibs.c
index 112f43b23ebf..0c7848e6149e 100644
--- a/arch/x86/events/amd/ibs.c
+++ b/arch/x86/events/amd/ibs.c
@@ -15,6 +15,7 @@
#include <linux/sched/clock.h>
#include <asm/apic.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include "../perf_event.h"
diff --git a/arch/x86/events/amd/lbr.c b/arch/x86/events/amd/lbr.c
index d24da377df77..5b437dc8e4ce 100644
--- a/arch/x86/events/amd/lbr.c
+++ b/arch/x86/events/amd/lbr.c
@@ -1,5 +1,7 @@
// SPDX-License-Identifier: GPL-2.0
#include <linux/perf_event.h>
+
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include <asm/perf_event.h>
diff --git a/arch/x86/events/amd/power.c b/arch/x86/events/amd/power.c
index dad42790cf7d..744dffa42dee 100644
--- a/arch/x86/events/amd/power.c
+++ b/arch/x86/events/amd/power.c
@@ -10,8 +10,11 @@
#include <linux/module.h>
#include <linux/slab.h>
#include <linux/perf_event.h>
+
#include <asm/cpu_device_id.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
+
#include "../perf_event.h"
/* Event code: LSB 8 bits, passed in attr->config any other bit is reserved. */
diff --git a/arch/x86/events/amd/uncore.c b/arch/x86/events/amd/uncore.c
index c1483ef16c0b..5261f12007df 100644
--- a/arch/x86/events/amd/uncore.c
+++ b/arch/x86/events/amd/uncore.c
@@ -15,6 +15,7 @@
#include <linux/smp.h>
#include <linux/types.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include <asm/perf_event.h>
diff --git a/arch/x86/events/intel/core.c b/arch/x86/events/intel/core.c
index c2fb729c270e..ebbcdf82b494 100644
--- a/arch/x86/events/intel/core.c
+++ b/arch/x86/events/intel/core.c
@@ -17,6 +17,7 @@
#include <linux/kvm_host.h>
#include <asm/cpufeature.h>
+#include <asm/cpuid/api.h>
#include <asm/debugreg.h>
#include <asm/hardirq.h>
#include <asm/intel-family.h>
diff --git a/arch/x86/events/intel/lbr.c b/arch/x86/events/intel/lbr.c
index 7aa59966e7c3..0d1ec3651735 100644
--- a/arch/x86/events/intel/lbr.c
+++ b/arch/x86/events/intel/lbr.c
@@ -3,6 +3,7 @@
#include <linux/types.h>
#include <asm/cpu_device_id.h>
+#include <asm/cpuid/api.h>
#include <asm/perf_event.h>
#include <asm/msr.h>
diff --git a/arch/x86/events/zhaoxin/core.c b/arch/x86/events/zhaoxin/core.c
index d59992364880..15bb9c9c9358 100644
--- a/arch/x86/events/zhaoxin/core.c
+++ b/arch/x86/events/zhaoxin/core.c
@@ -14,6 +14,7 @@
#include <asm/apic.h>
#include <asm/cpufeature.h>
+#include <asm/cpuid/api.h>
#include <asm/hardirq.h>
#include <asm/msr.h>
diff --git a/arch/x86/include/asm/acrn.h b/arch/x86/include/asm/acrn.h
index fab11192c60a..db42b477c41d 100644
--- a/arch/x86/include/asm/acrn.h
+++ b/arch/x86/include/asm/acrn.h
@@ -2,6 +2,8 @@
#ifndef _ASM_X86_ACRN_H
#define _ASM_X86_ACRN_H
+#include <asm/cpuid/api.h>
+
/*
* This CPUID returns feature bitmaps in EAX.
* Guest VM uses this to detect the appropriate feature bit.
diff --git a/arch/x86/include/asm/microcode.h b/arch/x86/include/asm/microcode.h
index 8b41f26f003b..645e65ac1586 100644
--- a/arch/x86/include/asm/microcode.h
+++ b/arch/x86/include/asm/microcode.h
@@ -3,6 +3,7 @@
#define _ASM_X86_MICROCODE_H
#include <asm/msr.h>
+#include <asm/cpuid/api.h>
struct cpu_signature {
unsigned int sig;
diff --git a/arch/x86/include/asm/xen/hypervisor.h b/arch/x86/include/asm/xen/hypervisor.h
index c2fc7869b996..7c596cebfb78 100644
--- a/arch/x86/include/asm/xen/hypervisor.h
+++ b/arch/x86/include/asm/xen/hypervisor.h
@@ -37,6 +37,7 @@ extern struct shared_info *HYPERVISOR_shared_info;
extern struct start_info *xen_start_info;
#include <asm/bug.h>
+#include <asm/cpuid/api.h>
#include <asm/processor.h>
#define XEN_SIGNATURE "XenVMMXenVMM"
diff --git a/arch/x86/kernel/apic/apic.c b/arch/x86/kernel/apic/apic.c
index f0e63842e2ef..b6bd2bd248d6 100644
--- a/arch/x86/kernel/apic/apic.c
+++ b/arch/x86/kernel/apic/apic.c
@@ -45,6 +45,7 @@
#include <asm/barrier.h>
#include <asm/cpu.h>
#include <asm/cpu_device_id.h>
+#include <asm/cpuid/api.h>
#include <asm/desc.h>
#include <asm/hpet.h>
#include <asm/hypervisor.h>
diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c
index c98b0d952537..8e29b39bc70c 100644
--- a/arch/x86/kernel/cpu/amd.c
+++ b/arch/x86/kernel/cpu/amd.c
@@ -15,6 +15,7 @@
#include <asm/cacheinfo.h>
#include <asm/cpu.h>
#include <asm/cpu_device_id.h>
+#include <asm/cpuid/api.h>
#include <asm/debugreg.h>
#include <asm/delay.h>
#include <asm/msr.h>
diff --git a/arch/x86/kernel/cpu/centaur.c b/arch/x86/kernel/cpu/centaur.c
index a3b55db35c96..cc5a390dcd07 100644
--- a/arch/x86/kernel/cpu/centaur.c
+++ b/arch/x86/kernel/cpu/centaur.c
@@ -5,6 +5,7 @@
#include <asm/cpu.h>
#include <asm/cpufeature.h>
+#include <asm/cpuid/api.h>
#include <asm/e820/api.h>
#include <asm/mtrr.h>
#include <asm/msr.h>
diff --git a/arch/x86/kernel/cpu/hygon.c b/arch/x86/kernel/cpu/hygon.c
index 2154f12766fb..75ad7eb1301a 100644
--- a/arch/x86/kernel/cpu/hygon.c
+++ b/arch/x86/kernel/cpu/hygon.c
@@ -10,6 +10,7 @@
#include <asm/apic.h>
#include <asm/cpu.h>
+#include <asm/cpuid/api.h>
#include <asm/smp.h>
#include <asm/numa.h>
#include <asm/cacheinfo.h>
diff --git a/arch/x86/kernel/cpu/mce/core.c b/arch/x86/kernel/cpu/mce/core.c
index 5a11c522ea97..31ff1c578b40 100644
--- a/arch/x86/kernel/cpu/mce/core.c
+++ b/arch/x86/kernel/cpu/mce/core.c
@@ -47,6 +47,7 @@
#include <linux/uaccess.h>
#include <asm/cpu_device_id.h>
+#include <asm/cpuid/api.h>
#include <asm/fred.h>
#include <asm/mce.h>
#include <asm/msr.h>
diff --git a/arch/x86/kernel/cpu/mce/inject.c b/arch/x86/kernel/cpu/mce/inject.c
index d02c4f556cd0..42c82c14c48a 100644
--- a/arch/x86/kernel/cpu/mce/inject.c
+++ b/arch/x86/kernel/cpu/mce/inject.c
@@ -26,6 +26,7 @@
#include <asm/amd/nb.h>
#include <asm/apic.h>
+#include <asm/cpuid/api.h>
#include <asm/irq_vectors.h>
#include <asm/mce.h>
#include <asm/msr.h>
diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c
index fc62ebf96f01..f19ac3247c19 100644
--- a/arch/x86/kernel/cpu/microcode/amd.c
+++ b/arch/x86/kernel/cpu/microcode/amd.c
@@ -34,6 +34,7 @@
#include <asm/cmdline.h>
#include <asm/cpu.h>
+#include <asm/cpuid/api.h>
#include <asm/microcode.h>
#include <asm/msr.h>
#include <asm/processor.h>
diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c
index 9243ed3ded85..eae9eaa455ba 100644
--- a/arch/x86/kernel/cpu/microcode/core.c
+++ b/arch/x86/kernel/cpu/microcode/core.c
@@ -35,6 +35,7 @@
#include <asm/apic.h>
#include <asm/cmdline.h>
#include <asm/cpu_device_id.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include <asm/perf_event.h>
#include <asm/processor.h>
diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c
index 99fda8f7dba7..30d20f78f07d 100644
--- a/arch/x86/kernel/cpu/microcode/intel.c
+++ b/arch/x86/kernel/cpu/microcode/intel.c
@@ -23,6 +23,7 @@
#include <linux/uio.h>
#include <asm/cpu_device_id.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include <asm/processor.h>
#include <asm/setup.h>
diff --git a/arch/x86/kernel/cpu/mshyperv.c b/arch/x86/kernel/cpu/mshyperv.c
index d0491bba9e30..771a65e6fefb 100644
--- a/arch/x86/kernel/cpu/mshyperv.c
+++ b/arch/x86/kernel/cpu/mshyperv.c
@@ -22,6 +22,7 @@
#include <hyperv/hvhdk.h>
#include <asm/apic.h>
+#include <asm/cpuid/api.h>
#include <asm/desc.h>
#include <asm/hypervisor.h>
#include <asm/i8259.h>
diff --git a/arch/x86/kernel/cpu/resctrl/core.c b/arch/x86/kernel/cpu/resctrl/core.c
index 35285567beec..52d3753ab020 100644
--- a/arch/x86/kernel/cpu/resctrl/core.c
+++ b/arch/x86/kernel/cpu/resctrl/core.c
@@ -22,6 +22,7 @@
#include <linux/slab.h>
#include <asm/cpu_device_id.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include <asm/resctrl.h>
diff --git a/arch/x86/kernel/cpu/resctrl/monitor.c b/arch/x86/kernel/cpu/resctrl/monitor.c
index c261558276cd..5dffb9453d77 100644
--- a/arch/x86/kernel/cpu/resctrl/monitor.c
+++ b/arch/x86/kernel/cpu/resctrl/monitor.c
@@ -21,6 +21,7 @@
#include <linux/resctrl.h>
#include <asm/cpu_device_id.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include "internal.h"
diff --git a/arch/x86/kernel/cpu/scattered.c b/arch/x86/kernel/cpu/scattered.c
index b52d00e8ad54..99c052f1962a 100644
--- a/arch/x86/kernel/cpu/scattered.c
+++ b/arch/x86/kernel/cpu/scattered.c
@@ -5,6 +5,7 @@
#include <linux/cpu.h>
#include <asm/apic.h>
+#include <asm/cpuid/api.h>
#include <asm/memtype.h>
#include <asm/processor.h>
diff --git a/arch/x86/kernel/cpu/sgx/driver.c b/arch/x86/kernel/cpu/sgx/driver.c
index 7f8d1e11dbee..f0c0a001bce6 100644
--- a/arch/x86/kernel/cpu/sgx/driver.c
+++ b/arch/x86/kernel/cpu/sgx/driver.c
@@ -6,7 +6,10 @@
#include <linux/mman.h>
#include <linux/security.h>
#include <linux/suspend.h>
+
+#include <asm/cpuid/api.h>
#include <asm/traps.h>
+
#include "driver.h"
#include "encl.h"
diff --git a/arch/x86/kernel/cpu/sgx/main.c b/arch/x86/kernel/cpu/sgx/main.c
index 2de01b379aa3..00bf42f4c536 100644
--- a/arch/x86/kernel/cpu/sgx/main.c
+++ b/arch/x86/kernel/cpu/sgx/main.c
@@ -14,8 +14,11 @@
#include <linux/slab.h>
#include <linux/sysfs.h>
#include <linux/vmalloc.h>
+
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include <asm/sgx.h>
+
#include "driver.h"
#include "encl.h"
#include "encls.h"
diff --git a/arch/x86/kernel/cpu/topology_amd.c b/arch/x86/kernel/cpu/topology_amd.c
index 843b1655ab45..abc6f5a7a486 100644
--- a/arch/x86/kernel/cpu/topology_amd.c
+++ b/arch/x86/kernel/cpu/topology_amd.c
@@ -2,6 +2,7 @@
#include <linux/cpu.h>
#include <asm/apic.h>
+#include <asm/cpuid/api.h>
#include <asm/memtype.h>
#include <asm/msr.h>
#include <asm/processor.h>
diff --git a/arch/x86/kernel/cpu/topology_common.c b/arch/x86/kernel/cpu/topology_common.c
index 48c47d02d8a9..38189e4fea0e 100644
--- a/arch/x86/kernel/cpu/topology_common.c
+++ b/arch/x86/kernel/cpu/topology_common.c
@@ -4,6 +4,7 @@
#include <xen/xen.h>
#include <asm/apic.h>
+#include <asm/cpuid/api.h>
#include <asm/intel-family.h>
#include <asm/processor.h>
#include <asm/smp.h>
diff --git a/arch/x86/kernel/cpu/topology_ext.c b/arch/x86/kernel/cpu/topology_ext.c
index 467b0326bf1a..eb915c73895f 100644
--- a/arch/x86/kernel/cpu/topology_ext.c
+++ b/arch/x86/kernel/cpu/topology_ext.c
@@ -2,6 +2,7 @@
#include <linux/cpu.h>
#include <asm/apic.h>
+#include <asm/cpuid/api.h>
#include <asm/memtype.h>
#include <asm/processor.h>
diff --git a/arch/x86/kernel/cpu/transmeta.c b/arch/x86/kernel/cpu/transmeta.c
index 42c939827621..1fdcd69c625c 100644
--- a/arch/x86/kernel/cpu/transmeta.c
+++ b/arch/x86/kernel/cpu/transmeta.c
@@ -3,8 +3,11 @@
#include <linux/sched.h>
#include <linux/sched/clock.h>
#include <linux/mm.h>
+
#include <asm/cpufeature.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
+
#include "cpu.h"
static void early_init_transmeta(struct cpuinfo_x86 *c)
diff --git a/arch/x86/kernel/cpu/vmware.c b/arch/x86/kernel/cpu/vmware.c
index f5e82d15d0b1..e6f80f5e59a3 100644
--- a/arch/x86/kernel/cpu/vmware.c
+++ b/arch/x86/kernel/cpu/vmware.c
@@ -31,6 +31,7 @@
#include <linux/static_call.h>
#include <asm/apic.h>
+#include <asm/cpuid/api.h>
#include <asm/div64.h>
#include <asm/hypervisor.h>
#include <asm/svm.h>
diff --git a/arch/x86/kernel/cpu/zhaoxin.c b/arch/x86/kernel/cpu/zhaoxin.c
index 89b1c8a70fe8..cfcfb6221e3f 100644
--- a/arch/x86/kernel/cpu/zhaoxin.c
+++ b/arch/x86/kernel/cpu/zhaoxin.c
@@ -4,6 +4,7 @@
#include <asm/cpu.h>
#include <asm/cpufeature.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include "cpu.h"
diff --git a/arch/x86/kernel/cpuid.c b/arch/x86/kernel/cpuid.c
index dae436253de4..cbd04b677fd1 100644
--- a/arch/x86/kernel/cpuid.c
+++ b/arch/x86/kernel/cpuid.c
@@ -37,6 +37,7 @@
#include <linux/gfp.h>
#include <linux/completion.h>
+#include <asm/cpuid/api.h>
#include <asm/processor.h>
#include <asm/msr.h>
diff --git a/arch/x86/kernel/jailhouse.c b/arch/x86/kernel/jailhouse.c
index f38d4516f7e7..787128e63f32 100644
--- a/arch/x86/kernel/jailhouse.c
+++ b/arch/x86/kernel/jailhouse.c
@@ -17,6 +17,7 @@
#include <asm/acpi.h>
#include <asm/apic.h>
#include <asm/cpu.h>
+#include <asm/cpuid/api.h>
#include <asm/hypervisor.h>
#include <asm/i8259.h>
#include <asm/io_apic.h>
diff --git a/arch/x86/kernel/kvm.c b/arch/x86/kernel/kvm.c
index cd3520a6248b..ddeea40273ed 100644
--- a/arch/x86/kernel/kvm.c
+++ b/arch/x86/kernel/kvm.c
@@ -33,6 +33,7 @@
#include <asm/apic.h>
#include <asm/apicdef.h>
#include <asm/cpu.h>
+#include <asm/cpuid/api.h>
#include <asm/cpuidle_haltpoll.h>
#include <asm/desc.h>
#include <asm/e820/api.h>
diff --git a/arch/x86/kernel/paravirt.c b/arch/x86/kernel/paravirt.c
index 3d745cd25a43..b7fc3b78086c 100644
--- a/arch/x86/kernel/paravirt.c
+++ b/arch/x86/kernel/paravirt.c
@@ -18,6 +18,7 @@
#include <asm/apic.h>
#include <asm/bug.h>
+#include <asm/cpuid/api.h>
#include <asm/debugreg.h>
#include <asm/delay.h>
#include <asm/desc.h>
diff --git a/arch/x86/kvm/mmu/mmu.c b/arch/x86/kvm/mmu/mmu.c
index 08bd094f2945..41958178c7d7 100644
--- a/arch/x86/kvm/mmu/mmu.c
+++ b/arch/x86/kvm/mmu/mmu.c
@@ -37,6 +37,7 @@
#include <linux/wordpart.h>
#include <asm/cmpxchg.h>
+#include <asm/cpuid/api.h>
#include <asm/io.h>
#include <asm/memtype.h>
#include <asm/page.h>
diff --git a/arch/x86/kvm/mmu/spte.c b/arch/x86/kvm/mmu/spte.c
index cfce03d8f123..e7b69275ae50 100644
--- a/arch/x86/kvm/mmu/spte.c
+++ b/arch/x86/kvm/mmu/spte.c
@@ -15,6 +15,7 @@
#include "x86.h"
#include "spte.h"
+#include <asm/cpuid/api.h>
#include <asm/e820/api.h>
#include <asm/memtype.h>
#include <asm/vmx.h>
diff --git a/arch/x86/kvm/reverse_cpuid.h b/arch/x86/kvm/reverse_cpuid.h
index c53b92379e6e..77bdc3fe3fc5 100644
--- a/arch/x86/kvm/reverse_cpuid.h
+++ b/arch/x86/kvm/reverse_cpuid.h
@@ -3,8 +3,10 @@
#define ARCH_X86_KVM_REVERSE_CPUID_H
#include <uapi/asm/kvm.h>
+
#include <asm/cpufeature.h>
#include <asm/cpufeatures.h>
+#include <asm/cpuid/types.h>
/*
* Define a KVM-only feature flag.
diff --git a/arch/x86/kvm/svm/sev.c b/arch/x86/kvm/svm/sev.c
index d64392bc0228..eb2aca272268 100644
--- a/arch/x86/kvm/svm/sev.c
+++ b/arch/x86/kvm/svm/sev.c
@@ -22,6 +22,7 @@
#include <uapi/linux/sev-guest.h>
+#include <asm/cpuid/api.h>
#include <asm/debugreg.h>
#include <asm/fpu/xcr.h>
#include <asm/fpu/xstate.h>
diff --git a/arch/x86/kvm/svm/svm.c b/arch/x86/kvm/svm/svm.c
index d8504af36836..42b21d01fe02 100644
--- a/arch/x86/kvm/svm/svm.c
+++ b/arch/x86/kvm/svm/svm.c
@@ -33,6 +33,7 @@
#include <asm/apic.h>
#include <asm/cpu_device_id.h>
+#include <asm/cpuid/api.h>
#include <asm/debugreg.h>
#include <asm/desc.h>
#include <asm/fpu/api.h>
diff --git a/arch/x86/kvm/vmx/pmu_intel.c b/arch/x86/kvm/vmx/pmu_intel.c
index 64208fe5aa96..66d9701acf39 100644
--- a/arch/x86/kvm/vmx/pmu_intel.c
+++ b/arch/x86/kvm/vmx/pmu_intel.c
@@ -14,6 +14,7 @@
#include <linux/perf_event.h>
#include <linux/types.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include <asm/perf_event.h>
diff --git a/arch/x86/kvm/vmx/sgx.c b/arch/x86/kvm/vmx/sgx.c
index f70128063bd5..1d2c38e0c66f 100644
--- a/arch/x86/kvm/vmx/sgx.c
+++ b/arch/x86/kvm/vmx/sgx.c
@@ -2,6 +2,7 @@
/* Copyright(c) 2021 Intel Corporation. */
#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include <asm/sgx.h>
diff --git a/arch/x86/kvm/vmx/vmx.c b/arch/x86/kvm/vmx/vmx.c
index 2bf9d4326a19..37e49693165e 100644
--- a/arch/x86/kvm/vmx/vmx.c
+++ b/arch/x86/kvm/vmx/vmx.c
@@ -34,6 +34,7 @@
#include <asm/asm.h>
#include <asm/cpu.h>
#include <asm/cpu_device_id.h>
+#include <asm/cpuid/api.h>
#include <asm/debugreg.h>
#include <asm/desc.h>
#include <asm/fpu/api.h>
diff --git a/arch/x86/mm/pti.c b/arch/x86/mm/pti.c
index 9d5d57a84a3c..277cfb9ead67 100644
--- a/arch/x86/mm/pti.c
+++ b/arch/x86/mm/pti.c
@@ -32,6 +32,7 @@
#include <asm/cmdline.h>
#include <asm/cpufeature.h>
+#include <asm/cpuid/api.h>
#include <asm/desc.h>
#include <asm/hypervisor.h>
#include <asm/pti.h>
diff --git a/arch/x86/pci/xen.c b/arch/x86/pci/xen.c
index e23c7f730f07..dd0e259a2882 100644
--- a/arch/x86/pci/xen.c
+++ b/arch/x86/pci/xen.c
@@ -23,6 +23,7 @@
#include <asm/acpi.h>
#include <asm/apic.h>
+#include <asm/cpuid/api.h>
#include <asm/i8259.h>
#include <asm/io_apic.h>
#include <asm/pci_x86.h>
diff --git a/arch/x86/xen/enlighten_hvm.c b/arch/x86/xen/enlighten_hvm.c
index 6b736b18826b..25060b139bad 100644
--- a/arch/x86/xen/enlighten_hvm.c
+++ b/arch/x86/xen/enlighten_hvm.c
@@ -14,6 +14,7 @@
#include <asm/apic.h>
#include <asm/cpu.h>
+#include <asm/cpuid/api.h>
#include <asm/e820/api.h>
#include <asm/early_ioremap.h>
#include <asm/hypervisor.h>
diff --git a/arch/x86/xen/pmu.c b/arch/x86/xen/pmu.c
index fae48c14ec45..681a8db58868 100644
--- a/arch/x86/xen/pmu.c
+++ b/arch/x86/xen/pmu.c
@@ -9,6 +9,7 @@
#include <xen/page.h>
#include <xen/xen.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include <asm/xen/hypercall.h>
diff --git a/arch/x86/xen/time.c b/arch/x86/xen/time.c
index 229f8161eeab..65826ff26d7d 100644
--- a/arch/x86/xen/time.c
+++ b/arch/x86/xen/time.c
@@ -23,6 +23,7 @@
#include <xen/interface/vcpu.h>
#include <xen/interface/xen.h>
+#include <asm/cpuid/api.h>
#include <asm/pvclock.h>
#include <asm/xen/cpuid.h>
diff --git a/drivers/char/agp/efficeon-agp.c b/drivers/char/agp/efficeon-agp.c
index 79f956d7b17d..4ae44878119b 100644
--- a/drivers/char/agp/efficeon-agp.c
+++ b/drivers/char/agp/efficeon-agp.c
@@ -28,6 +28,8 @@
#include <linux/page-flags.h>
#include <linux/pci.h>
+#include <asm/cpuid/api.h>
+
#include "agp.h"
#include "intel-agp.h"
diff --git a/drivers/cpufreq/longrun.c b/drivers/cpufreq/longrun.c
index 263c48b8f628..3429857feb96 100644
--- a/drivers/cpufreq/longrun.c
+++ b/drivers/cpufreq/longrun.c
@@ -12,6 +12,7 @@
#include <linux/timex.h>
#include <asm/cpu_device_id.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include <asm/processor.h>
diff --git a/drivers/cpufreq/powernow-k7.c b/drivers/cpufreq/powernow-k7.c
index 0608040fcd1e..7a324a829a43 100644
--- a/drivers/cpufreq/powernow-k7.c
+++ b/drivers/cpufreq/powernow-k7.c
@@ -27,6 +27,7 @@
#include <linux/timex.h>
#include <asm/cpu_device_id.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include <asm/timer.h> /* Needed for recalibrate_cpu_khz() */
diff --git a/drivers/cpufreq/powernow-k8.c b/drivers/cpufreq/powernow-k8.c
index 2b5cdd8f1c0a..e909eee30edd 100644
--- a/drivers/cpufreq/powernow-k8.c
+++ b/drivers/cpufreq/powernow-k8.c
@@ -41,6 +41,7 @@
#include <asm/msr.h>
#include <asm/cpu_device_id.h>
+#include <asm/cpuid/api.h>
#include <acpi/processor.h>
diff --git a/drivers/cpufreq/speedstep-lib.c b/drivers/cpufreq/speedstep-lib.c
index f08817331aec..3c323cd8eede 100644
--- a/drivers/cpufreq/speedstep-lib.c
+++ b/drivers/cpufreq/speedstep-lib.c
@@ -15,6 +15,7 @@
#include <linux/module.h>
#include <linux/moduleparam.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include <asm/tsc.h>
diff --git a/drivers/firmware/efi/libstub/x86-5lvl.c b/drivers/firmware/efi/libstub/x86-5lvl.c
index f1c5fb45d5f7..029ad80cf0b4 100644
--- a/drivers/firmware/efi/libstub/x86-5lvl.c
+++ b/drivers/firmware/efi/libstub/x86-5lvl.c
@@ -2,6 +2,7 @@
#include <linux/efi.h>
#include <asm/boot.h>
+#include <asm/cpuid/api.h>
#include <asm/desc.h>
#include <asm/efi.h>
diff --git a/drivers/gpu/drm/gma500/mmu.c b/drivers/gpu/drm/gma500/mmu.c
index e6753282e70e..4d2aba31a78c 100644
--- a/drivers/gpu/drm/gma500/mmu.c
+++ b/drivers/gpu/drm/gma500/mmu.c
@@ -7,6 +7,8 @@
#include <linux/highmem.h>
#include <linux/vmalloc.h>
+#include <asm/cpuid/api.h>
+
#include "mmu.h"
#include "psb_drv.h"
#include "psb_reg.h"
diff --git a/drivers/hwmon/fam15h_power.c b/drivers/hwmon/fam15h_power.c
index 5a5674e85f63..1ecaef25f04e 100644
--- a/drivers/hwmon/fam15h_power.c
+++ b/drivers/hwmon/fam15h_power.c
@@ -19,6 +19,7 @@
#include <linux/time.h>
#include <linux/topology.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include <asm/processor.h>
diff --git a/drivers/hwmon/k10temp.c b/drivers/hwmon/k10temp.c
index babf2413d666..12115654689a 100644
--- a/drivers/hwmon/k10temp.c
+++ b/drivers/hwmon/k10temp.c
@@ -20,7 +20,9 @@
#include <linux/module.h>
#include <linux/pci.h>
#include <linux/pci_ids.h>
+
#include <asm/amd/node.h>
+#include <asm/cpuid/api.h>
#include <asm/processor.h>
MODULE_DESCRIPTION("AMD Family 10h+ CPU core temperature monitor");
diff --git a/drivers/hwmon/k8temp.c b/drivers/hwmon/k8temp.c
index 8c1efce9a04b..eb167be245b9 100644
--- a/drivers/hwmon/k8temp.c
+++ b/drivers/hwmon/k8temp.c
@@ -15,6 +15,7 @@
#include <linux/pci.h>
#include <linux/slab.h>
+#include <asm/cpuid/api.h>
#include <asm/processor.h>
#define TEMP_FROM_REG(val) (((((val) >> 16) & 0xff) - 49) * 1000)
diff --git a/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c b/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c
index 444ee53566c4..f63d66a27ffe 100644
--- a/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c
+++ b/drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c
@@ -7,6 +7,8 @@
#include <linux/pci.h>
#include <linux/platform_data/x86/intel_pmc_ipc.h>
+#include <asm/cpuid/api.h>
+
#include "dwmac-intel.h"
#include "dwmac4.h"
#include "stmmac.h"
diff --git a/drivers/ras/amd/fmpm.c b/drivers/ras/amd/fmpm.c
index 775c5231be57..f9723051477c 100644
--- a/drivers/ras/amd/fmpm.c
+++ b/drivers/ras/amd/fmpm.c
@@ -52,6 +52,7 @@
#include <acpi/apei.h>
#include <asm/cpu_device_id.h>
+#include <asm/cpuid/api.h>
#include <asm/mce.h>
#include "../debugfs.h"
diff --git a/drivers/thermal/intel/intel_hfi.c b/drivers/thermal/intel/intel_hfi.c
index bd2fca7dc017..c910cc563d9d 100644
--- a/drivers/thermal/intel/intel_hfi.c
+++ b/drivers/thermal/intel/intel_hfi.c
@@ -41,6 +41,7 @@
#include <linux/topology.h>
#include <linux/workqueue.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include "intel_hfi.h"
diff --git a/drivers/thermal/intel/x86_pkg_temp_thermal.c b/drivers/thermal/intel/x86_pkg_temp_thermal.c
index c843cb5fc5c3..1b9e0b49856c 100644
--- a/drivers/thermal/intel/x86_pkg_temp_thermal.c
+++ b/drivers/thermal/intel/x86_pkg_temp_thermal.c
@@ -20,6 +20,7 @@
#include <linux/thermal.h>
#include <asm/cpu_device_id.h>
+#include <asm/cpuid/api.h>
#include <asm/msr.h>
#include "thermal_interrupt.h"
diff --git a/drivers/virt/acrn/hsm.c b/drivers/virt/acrn/hsm.c
index e4e196abdaac..67119f9da449 100644
--- a/drivers/virt/acrn/hsm.c
+++ b/drivers/virt/acrn/hsm.c
@@ -16,6 +16,7 @@
#include <linux/slab.h>
#include <asm/acrn.h>
+#include <asm/cpuid/api.h>
#include <asm/hypervisor.h>
#include "acrn_drv.h"
diff --git a/drivers/xen/events/events_base.c b/drivers/xen/events/events_base.c
index 727a78bfdf02..e07c36c337fa 100644
--- a/drivers/xen/events/events_base.c
+++ b/drivers/xen/events/events_base.c
@@ -40,6 +40,7 @@
#include <linux/string.h>
#ifdef CONFIG_X86
+#include <asm/cpuid/api.h>
#include <asm/desc.h>
#include <asm/i8259.h>
#include <asm/idtentry.h>
diff --git a/drivers/xen/grant-table.c b/drivers/xen/grant-table.c
index a9ff69f08eb8..68ff1d6ff7bd 100644
--- a/drivers/xen/grant-table.c
+++ b/drivers/xen/grant-table.c
@@ -59,6 +59,7 @@
#include <xen/swiotlb-xen.h>
#include <xen/balloon.h>
#ifdef CONFIG_X86
+#include <asm/cpuid/api.h>
#include <asm/xen/cpuid.h>
#endif
#include <xen/mem-reservation.h>
diff --git a/drivers/xen/xenbus/xenbus_xs.c b/drivers/xen/xenbus/xenbus_xs.c
index 589585b05f8a..74d1d76426c3 100644
--- a/drivers/xen/xenbus/xenbus_xs.c
+++ b/drivers/xen/xenbus/xenbus_xs.c
@@ -48,6 +48,9 @@
#include <linux/unistd.h>
#include <asm/xen/hypervisor.h>
+#ifdef CONFIG_X86
+#include <asm/cpuid/api.h>
+#endif
#include <xen/xen.h>
#include <xen/xenbus.h>
--
2.50.1
^ permalink raw reply related [flat|nested] 8+ messages in thread
* [PATCH v3 6/6] x86/cpu: <asm/processor.h>: Do not include the CPUID API header
2025-07-22 6:54 [PATCH v3 0/6] x86: Disentangle <asm/processor.h> dependency on CPUID headers Ahmed S. Darwish
` (4 preceding siblings ...)
2025-07-22 6:54 ` [PATCH v3 5/6] treewide: Explicitly include the x86 CPUID headers Ahmed S. Darwish
@ 2025-07-22 6:54 ` Ahmed S. Darwish
5 siblings, 0 replies; 8+ messages in thread
From: Ahmed S. Darwish @ 2025-07-22 6:54 UTC (permalink / raw)
To: Borislav Petkov, Ingo Molnar, Dave Hansen
Cc: Thomas Gleixner, Andrew Cooper, Paolo Bonzini, Vitaly Kuznetsov,
Sean Christopherson, Juergen Gross, Boris Ostrovsky,
Greg Kroah-Hartman, John Ogness, x86, kvm, x86-cpuid, LKML,
Ahmed S. Darwish
<asm/processor.h> includes the main CPUID API header <asm/cpuid/api.h>
but it does not need it.
Remove the include.
Note, this allows the CPUID API header to include <asm/processor.h> at a
later step, which is needed for the upcoming CPUID model and parser,
without introducing a circular dependency.
Note, all call sites which implicitly included the CPUID API header
through <asm/processor.h> have been already modified to explicitly
include the CPUID API instead.
Signed-off-by: Ahmed S. Darwish <darwi@linutronix.de>
---
arch/x86/include/asm/processor.h | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/x86/include/asm/processor.h b/arch/x86/include/asm/processor.h
index bde58f6510ac..910e36b0c00d 100644
--- a/arch/x86/include/asm/processor.h
+++ b/arch/x86/include/asm/processor.h
@@ -16,7 +16,6 @@ struct vm86;
#include <uapi/asm/sigcontext.h>
#include <asm/current.h>
#include <asm/cpufeatures.h>
-#include <asm/cpuid/api.h>
#include <asm/page.h>
#include <asm/pgtable_types.h>
#include <asm/percpu.h>
--
2.50.1
^ permalink raw reply related [flat|nested] 8+ messages in thread