Re: [PATCH v2 1/2] x86/ioremap: introduce helper to implement xxx_is_setup_data()
From: Ingo Molnar
Date: Wed Nov 20 2024 - 03:26:14 EST
* Tom Lendacky <thomas.lendacky@xxxxxxx> wrote:
> > /*
> > * Examine the physical address to determine if it is boot data by checking
> > * it against the boot params setup_data chain.
> > */
> > -static bool memremap_is_setup_data(resource_size_t phys_addr,
> > - unsigned long size)
> > +static bool __ref __memremap_is_setup_data(resource_size_t phys_addr,
>
> Oh, I see why the __ref is needed now, because this calls an __init
> function based on the early bool.
>
> While this nicely consolidates the checking, I'll let the x86
> maintainers decide whether they like that an __init function is calling
> a non __init function.
So why would it be a problem? Only non-__init calling __init is a bug,
because __init functions cease to exist after early bootup. Also,
calling certain kernel subsystems too early, before they are
initialized, is a bug as well.
But calling non-__init functions that have initialized already is like
totally normal: printk() for example, but also all locking facilities,
etc.
Am I missing anything here?
Thanks,
Ingo