* [PATCH v3 0/6] x86: Disentangle <asm/processor.h> dependency on CPUID headers
@ 2025-07-22 6:54 Ahmed S. Darwish
2025-07-22 6:54 ` [PATCH v3 1/6] x86/cpuid: Remove transitional <asm/cpuid.h> header Ahmed S. Darwish
` (5 more replies)
0 siblings, 6 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
Hi,
This series stops <asm/processor.h> from including <asm/cpuid/api.h>
since the former has no need for the latter.
For this to work, modify all CPUID call sites which implicitly include
the CPUID <asm/cpuid/api.h> header to explicitly include it instead.
Note, this allows the CPUID API header to include <asm/processor.h>
without inducing a circular dependency — which is needed for the upcoming
CPUID model and parser.
Changelog v3
~~~~~~~~~~~~
* For the KVM CPUID call sites:
arch/x86/kvm/mmu/mmu.c
arch/x86/kvm/svm/sev.c
arch/x86/kvm/svm/svm.c
arch/x86/kvm/vmx/pmu_intel.c
arch/x86/kvm/vmx/sgx.c
arch/x86/kvm/vmx/vmx.c
Let them explicitly include <asm/cpuid/api.h> instead of letting their
internal arch/x86/kvm/cpuid.h header does it. The latter header does
not need the former, so making it include a itnot just for the sake of
its call sites was not correct.
* While at it, modify /all/ call sites that use the CPUID API to
explicitly include <asm/cpuid/api.h>.
Previous iterations only modified the CPUID call sites which implicitly
included the CPUID headers through <asm/processor.h>. Since we're at
it anyway, there's no reason not to complete the task across the whole
kernel tree.
Thus, also convert below arch/x86/ sites:
arch/x86/kernel/apic/apic.c
arch/x86/kernel/cpu/sgx/driver.c
arch/x86/kernel/cpu/vmware.c
arch/x86/kernel/jailhouse.c
arch/x86/kernel/kvm.c
arch/x86/mm/pti.c
arch/x86/pci/xen.c
arch/x86/xen/enlighten_hvm.c
arch/x86/xen/pmu.c
arch/x86/xen/time.c
and below drivers/ sites:
drivers/gpu/drm/gma500/mmu.c
drivers/net/ethernet/stmicro/stmmac/dwmac-intel.c
drivers/ras/amd/fmpm.c
drivers/virt/acrn/hsm.c
drivers/xen/events/events_base.c
drivers/xen/grant-table.c
drivers/xen/xenbus/xenbus_xs.c
to explicitly include the CPUID API header.
* Fix the v2 i386 compilation error:
https://lore.kernel.org/x86-cpuid/202507150403.hKKg9xjJ-lkp@intel.com
by making drivers/char/agp/efficeon-agp.c explicitly include the CPUID
API.
* Make sure that an "i386 allyesconfig" build is successful this time.
* Based on v6.16-rc7.
Changelog v2
~~~~~~~~~~~~
( [PATCH v2 0/6] x86: Disentangle <asm/processor.h> dependency on CPUID headers
https://lore.kernel.org/lkml/20250709203033.90125-1-darwi@linutronix.de )
Remove the <asm/cpuid/types.h> include from <asm/processor.h> since only
the upcoming CPUID model needed that — not current mainline code. That
include was kept in v1, by mistake, because this series was originally
part of the CPUID model patch queue.
Due to the CPUID types include remove above, let
arch/x86/kvm/reverse_cpuid.h include <asm/cpuid/types.h> since it
references the CPUID_EAX..EDX macros. At this series v1, the KVM header
implicitly included such CPUID types header through <asm/cpufeature.h>,
through <asm/processor.h>.
Drop the "x86/cpuid: Rename cpuid_leaf()/cpuid_subleaf() APIs" patch from
this series. After a second look, it should be part of the CPUID model
PQ instead.
Changelog v1
~~~~~~~~~~~~
( [PATCH v1 0/7] x86: Disentangle <asm/processor.h> dependency on CPUID APIs
https://lore.kernel.org/lkml/20250612234010.572636-1-darwi@linutronix.de )
This series avoids including the full CPUID API from <asm/processor.h>.
That header only needs the CPUID data types and not the full API.
Let <asm/processor.h> include <asm/cpuid/types.h> instead of
<asm/cpuid/api.h>.
Modify all CPUID call sites which implicitly included the CPUID API
though <asm/processor.h> to explicitly include <asm/cpuid/api.h> instead.
This work prepares for an upcoming v4 of the CPUID model:
[PATCH v3 00/44] x86: Introduce a centralized CPUID data model
https://lore.kernel.org/lkml/20250612234010.572636-1-darwi@linutronix.de
where <asm/cpuid/api.h> needs to include <asm/processor.h>, thus creating
a circular dependency if not resolved beforehand… Patches 1->19 of the
v3 above had parts of this series circular dependency disentanglement.
Per Boris' remarks above, merge the header includes reorderings into two
patches only: one patch for x86 and one for drivers.
The 0-day bot x86-32 compilation error:
Re: [PATCH v3 41/44] x86/cpu: <asm/processor.h>: Do not include CPUID…
https://lore.kernel.org/lkml/202506132039.imS2Pflx-lkp@intel.com
is also fixed in this series.
Beside the call sites converted at CPUID model v3 above, this series also
switches below files:
arch/x86/kernel/cpu/microcode/core.c
arch/x86/kernel/cpu/microcode/intel.c
arch/x86/kernel/cpu/mshyperv.c
drivers/cpufreq/longrun.c
drivers/cpufreq/powernow-k7.c
drivers/cpufreq/powernow-k8.c
to explicitly include <asm/cpuid/api.h>.
Based on v6.16-rc5.
Thanks!
8<----
Ahmed S. Darwish (6):
x86/cpuid: Remove transitional <asm/cpuid.h> header
ASoC: Intel: avs: Include CPUID header at file scope
x86: Reorder headers alphabetically
drivers: Reorder headers alphabetically
treewide: Explicitly include the x86 CPUID headers
x86/cpu: <asm/processor.h>: Do not include the CPUID API header
arch/x86/boot/compressed/pgtable_64.c | 1 +
arch/x86/boot/startup/sme.c | 9 +--
arch/x86/coco/tdx/tdx.c | 6 +-
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 | 15 ++--
arch/x86/events/intel/core.c | 1 +
arch/x86/events/intel/lbr.c | 1 +
arch/x86/events/zhaoxin/core.c | 12 ++--
arch/x86/include/asm/acrn.h | 2 +
arch/x86/include/asm/cpuid.h | 8 ---
arch/x86/include/asm/microcode.h | 1 +
arch/x86/include/asm/processor.h | 1 -
arch/x86/include/asm/xen/hypervisor.h | 1 +
arch/x86/kernel/apic/apic.c | 71 ++++++++++---------
arch/x86/kernel/cpu/amd.c | 26 +++----
arch/x86/kernel/cpu/centaur.c | 1 +
arch/x86/kernel/cpu/hygon.c | 1 +
arch/x86/kernel/cpu/mce/core.c | 63 ++++++++--------
arch/x86/kernel/cpu/mce/inject.c | 1 +
arch/x86/kernel/cpu/microcode/amd.c | 13 ++--
arch/x86/kernel/cpu/microcode/core.c | 23 +++---
arch/x86/kernel/cpu/microcode/intel.c | 12 ++--
arch/x86/kernel/cpu/mshyperv.c | 29 ++++----
arch/x86/kernel/cpu/resctrl/core.c | 6 +-
arch/x86/kernel/cpu/resctrl/monitor.c | 1 +
arch/x86/kernel/cpu/scattered.c | 3 +-
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 | 3 +-
arch/x86/kernel/cpu/topology_ext.c | 1 +
arch/x86/kernel/cpu/transmeta.c | 3 +
arch/x86/kernel/cpu/vmware.c | 14 ++--
arch/x86/kernel/cpu/zhaoxin.c | 1 +
arch/x86/kernel/cpuid.c | 1 +
arch/x86/kernel/jailhouse.c | 10 +--
arch/x86/kernel/kvm.c | 36 +++++-----
arch/x86/kernel/paravirt.c | 29 ++++----
arch/x86/kvm/mmu/mmu.c | 57 +++++++--------
arch/x86/kvm/mmu/spte.c | 1 +
arch/x86/kvm/reverse_cpuid.h | 2 +
arch/x86/kvm/svm/sev.c | 26 +++----
arch/x86/kvm/svm/svm.c | 51 ++++++-------
arch/x86/kvm/vmx/pmu_intel.c | 7 +-
arch/x86/kvm/vmx/sgx.c | 3 +-
arch/x86/kvm/vmx/vmx.c | 19 ++---
arch/x86/mm/pti.c | 22 +++---
arch/x86/pci/xen.c | 23 +++---
arch/x86/xen/enlighten_hvm.c | 13 ++--
arch/x86/xen/pmu.c | 13 ++--
arch/x86/xen/time.c | 23 +++---
drivers/char/agp/efficeon-agp.c | 11 +--
drivers/cpufreq/longrun.c | 7 +-
drivers/cpufreq/powernow-k7.c | 14 ++--
drivers/cpufreq/powernow-k8.c | 17 ++---
drivers/cpufreq/speedstep-lib.c | 6 +-
drivers/firmware/efi/libstub/x86-5lvl.c | 1 +
drivers/gpu/drm/gma500/mmu.c | 2 +
drivers/hwmon/fam15h_power.c | 14 ++--
drivers/hwmon/k10temp.c | 2 +
drivers/hwmon/k8temp.c | 12 ++--
.../net/ethernet/stmicro/stmmac/dwmac-intel.c | 5 +-
drivers/ras/amd/fmpm.c | 3 +-
drivers/thermal/intel/intel_hfi.c | 1 +
drivers/thermal/intel/x86_pkg_temp_thermal.c | 15 ++--
drivers/virt/acrn/hsm.c | 1 +
drivers/xen/events/events_base.c | 28 ++++----
drivers/xen/grant-table.c | 15 ++--
drivers/xen/xenbus/xenbus_xs.c | 23 +++---
sound/soc/intel/avs/tgl.c | 25 ++++---
73 files changed, 496 insertions(+), 387 deletions(-)
delete mode 100644 arch/x86/include/asm/cpuid.h
base-commit: 89be9a83ccf1f88522317ce02f854f30d6115c41
--
2.50.1
^ permalink raw reply [flat|nested] 8+ messages in thread
* [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
* [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
* 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
end of thread, other threads:[~2025-07-22 14:18 UTC | newest]
Thread overview: 8+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
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 ` [PATCH v3 3/6] x86: Reorder headers alphabetically Ahmed S. Darwish
2025-07-22 14:18 ` Sean Christopherson
2025-07-22 6:54 ` [PATCH v3 4/6] drivers: " 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
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).