Re: [PATCH v1] microblaze: tag highmem_setup() with __meminit

From: David Hildenbrand
Date: Tue Mar 02 2021 - 04:37:18 EST


On 01.03.21 23:18, Oscar Salvador wrote:
On Mon, Mar 01, 2021 at 12:47:49PM +0100, David Hildenbrand wrote:
With commit a0cd7a7c4bc0 ("mm: simplify free_highmem_page() and
free_reserved_page()") the kernel test robot complains about a warning:

WARNING: modpost: vmlinux.o(.text.unlikely+0x23ac): Section mismatch in
reference from the function highmem_setup() to the function
.meminit.text:memblock_is_reserved()

This has been broken ever since microblaze added highmem support,
because memblock_is_reserved() was already tagged with "__init" back then -
most probably the function always got inlined, so we never stumbled over
it.

It might be good to point out that we need __meminit instead of __init
because microblaze platform does not define CONFIG_ARCH_KEEP_MEMBLOCK,
and __init_memblock fallsback to that.

(I had to go and look as I was puzzled :-) )

Reviewed-by: Oscar Salvador <osalvador@xxxxxxx>

Thanks!

Whoever feels like picking this up (@Andrew?) can you add

"We need __meminit because __init_memblock defaults to that without CONFIG_ARCH_KEEP_MEMBLOCK" and __init_memblock is not used outside memblock code.

--
Thanks,

David / dhildenb