Re: WARNING: modpost: vmlinux.o(.text+0x74fea4): Section mismatch in reference from the function memblock_find_in_range_node() to the function .init.text:memblock_bottom_up()

From: Arnd Bergmann
Date: Tue Mar 16 2021 - 12:35:35 EST


On Tue, Mar 16, 2021 at 5:23 PM 'Nick Desaulniers' via Clang Built
Linux <clang-built-linux@xxxxxxxxxxxxxxxx> wrote:
> On Tue, Mar 16, 2021 at 12:04 AM Mike Rapoport <rppt@xxxxxxxxxxxxx> wrote:

> >
> > I don't have clang-13 setup handy so I could not check, but I think this
> > should be the fix:
>
> Thanks for taking another look:
> https://lore.kernel.org/lkml/20210225205908.GM1447004@xxxxxxxxxx/
> Do we want to switch the above to the below?

The patch above is now in mainline and caused the reported problem.

> > diff --git a/include/linux/memblock.h b/include/linux/memblock.h
> > index d13e3cd938b4..5984fff3f175 100644
> > --- a/include/linux/memblock.h
> > +++ b/include/linux/memblock.h
> > @@ -460,7 +460,7 @@ static inline void memblock_free_late(phys_addr_t base, phys_addr_t size)
> > /*
> > * Set the allocation direction to bottom-up or top-down.
> > */
> > -static inline __init void memblock_set_bottom_up(bool enable)
> > +static inline __init_memblock void memblock_set_bottom_up(bool enable)
> > {
> > memblock.bottom_up = enable;
> > }
> > @@ -470,7 +470,7 @@ static inline __init void memblock_set_bottom_up(bool enable)
> > * if this is true, that said, memblock will allocate memory
> > * in bottom-up direction.
> > */
> > -static inline __init bool memblock_bottom_up(void)
> > +static inline __init_memblock bool memblock_bottom_up(void)
> > {
> > return memblock.bottom_up;
> > }

I don't see the warning on my machine for some reason, but the patch
does seem correct.

Reviewed-by: Arnd Bergmann <arnd@xxxxxxxx>

Arnd