x86/msr: Prepare for including <linux/percpu.h> into <asm/msr.h>
authorThomas Gleixner <tglx@linutronix.de>
Mon, 4 Mar 2024 10:12:19 +0000 (11:12 +0100)
committerIngo Molnar <mingo@kernel.org>
Mon, 4 Mar 2024 11:01:39 +0000 (12:01 +0100)
commit154fcf3a788868cb87d8c2e50c0b5b3a2fe89853
tree906c90e82d721dc64d6bf770a2f0873957769233
parent9eae297d5d8d87738a14010af62b2b64b9d98097
x86/msr: Prepare for including <linux/percpu.h> into <asm/msr.h>

To clean up the per CPU insanity of UP which causes sparse to be rightfully
unhappy and prevents the usage of the generic per CPU accessors on cpu_info
it is necessary to include <linux/percpu.h> into <asm/msr.h>.

Including <linux/percpu.h> into <asm/msr.h> is impossible because it ends
up in header dependency hell. The problem is that <asm/processor.h>
includes <asm/msr.h>. The inclusion of <linux/percpu.h> results in a
compile fail where the compiler cannot longer handle an include in
<asm/cpufeature.h> which references boot_cpu_data which is
defined in <asm/processor.h>.

The only reason why <asm/msr.h> is included in <asm/processor.h> are the
set/get_debugctlmsr() inlines. They are defined there because <asm/processor.h>
is such a nice dump ground for everything. In fact they belong obviously
into <asm/debugreg.h>.

Move them to <asm/debugreg.h> and fix up the resulting damage which is just
exposing the reliance on random include chains.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Link: https://lore.kernel.org/r/20240304005104.454678686@linutronix.de
arch/x86/events/intel/core.c
arch/x86/events/intel/ds.c
arch/x86/include/asm/debugreg.h
arch/x86/include/asm/fsgsbase.h
arch/x86/include/asm/processor.h
arch/x86/include/asm/special_insns.h
arch/x86/kernel/cpu/intel_pconfig.c
arch/x86/kernel/cpu/rdrand.c
arch/x86/kernel/fpu/bugs.c
arch/x86/kernel/step.c