Re: [PATCH v2] x86/setup: do not include kexec_handover.h from asm/setup.h

Borislav Petkov <[email protected]>
Newsgroups org.infradead.lists.kexec,org.kernel.vger.linux-kernel
Message-ID <20260703173810.GDakfzgqRx9e9kiUpF@fat_crate.local>
On Fri, Jul 03, 2026 at 06:23:33PM +0200, Pratyush Yadav wrote:
> On Fri, Jul 03 2026, Borislav Petkov wrote:
> 
> > On Fri, Jul 03, 2026 at 04:37:03PM +0200, Pratyush Yadav wrote:
> >> From: "Pratyush Yadav (Google)" <[email protected]>
> >> 
> >> x86 asm/setup.h includes linux/kexec_handover.h. This is because it is
> >> used by setup.c and kaslr.c. But this inclusion is problematic. The
> >> header is included in many places, so it results in the KHO header being
> >> propagated there. Also, the setup header is used by realmode code. If
> >> KHO header includes things like mm.h, it causes a big dump of
> >> compliation failures.
> >
> >> Nothing in setup.h uses anything from KHO. Remove the header from
> >> setup.h, and directly include it in setup.c. which does use things from
> >> KHO. Since kaslr.c is a part of the decompressor, avoid including linux
> >> headers there directly. Instead, split out struct kho_scratch, which is
> >> the only thing the kaslr.c uses, and move it to
> >> include/asm-generic/kexec_handover.h.
> >> 
> >> This change should also help reduce files recompiled when
> >
> >> kexec_handover.h changes.
> >> 
> >> Signed-off-by: Pratyush Yadav (Google) <[email protected]>
> >> ---
> >> 
> >> Notes:
> >>     Thomas/Ingo/Borislav/Dave, is it okay if we take this patch through the
> >
> > See my reply to Mike about using the generic-y infrastructure.
> 
> To double check I got your point correctly, is this what you mean?
> 
> diff --git a/arch/x86/boot/compressed/kaslr.c b/arch/x86/boot/compressed/kaslr.c
> index ac02aed8757b..22267a83e064 100644
> --- a/arch/x86/boot/compressed/kaslr.c
> +++ b/arch/x86/boot/compressed/kaslr.c
> @@ -32,7 +32,7 @@
>  #include <asm/setup.h>	/* For COMMAND_LINE_SIZE */
>  #undef _SETUP
>  
> -#include <asm-generic/kexec_handover.h>
> +#include <asm/kexec_handover.h>
>  
>  extern unsigned long get_cmd_line_ptr(void);
>  
> diff --git a/arch/x86/include/asm/Kbuild b/arch/x86/include/asm/Kbuild
> index 078fd2c0d69d..47ef8cb482e3 100644
> --- a/arch/x86/include/asm/Kbuild
> +++ b/arch/x86/include/asm/Kbuild
> @@ -15,3 +15,4 @@ generic-y += fprobe.h
>  generic-y += mcs_spinlock.h
>  generic-y += mmzone.h
>  generic-y += ring_buffer.h
> +generic-y += kexec_handover.h
> 
> -- 

Looks about right, AFAICT.

Thx.

-- 
Regards/Gruss,
    Boris.

https://people.kernel.org/tglx/notes-about-netiquette
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.