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