Re: [PATCH] [v2] mm: make arch_has_descending_max_zone_pfns() static

From: Geert Uytterhoeven
Date: Tue Apr 18 2023 - 08:37:05 EST


Hi Arnd,

On Sat, 15 Apr 2023, Arnd Bergmann wrote:
From: Arnd Bergmann <arnd@xxxxxxxx>

clang produces a build failure on x86 for some randconfig builds
after a change that moves around code to mm/mm_init.c:

Cannot find symbol for section 2: .text.
mm/mm_init.o: failed

I have not been able to figure out why this happens, but the __weak
annotation on arch_has_descending_max_zone_pfns() is the trigger here.

Removing the weak function in favor of an open-coded Kconfig option
check avoids the problem and becomes clearer as well as better to
optimize by the compiler.

Fixes: 9420f89db2dd ("mm: move most of core MM initialization to mm/mm_init.c")
Cc: llvm@xxxxxxxxxxxxxxx
Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx>
---
v2: fix logic bug reported-by: kernel test robot <oliver.sang@xxxxxxxxx>,
see https://lore.kernel.org/oe-lkp/202304151422.5e4d380b-oliver.sang@xxxxxxxxx

Thanks, reverting commit 413d478d3b366d09 ("mm: make
arch_has_descending_max_zone_pfns() static") in next-20230417 and
applying your v2 makes Salvator-XS regain its DMA memory zone.

Tested-by: Geert Uytterhoeven <geert+renesas@xxxxxxxxx>

Gr{oetje,eeting}s,

Geert

--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@xxxxxxxxxxxxxx

In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds