• Thomas Gleixner's avatar
    x86/msr: Prepare for including <linux/percpu.h> into <asm/msr.h> · 154fcf3a
    Thomas Gleixner authored
    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: default avatarThomas Gleixner <tglx@linutronix.de>
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    Link: https://lore.kernel.org/r/20240304005104.454678686@linutronix.de
    154fcf3a
ds.c 67.9 KB