powerpc/prom_init: Fix build failure with GCC_PLUGIN_STRUCTLEAK_BYREF_ALL and KASAN
authorChristophe Leroy <christophe.leroy@csgroup.eu>
Fri, 10 Jun 2022 15:43:43 +0000 (17:43 +0200)
committerMichael Ellerman <mpe@ellerman.id.au>
Sun, 19 Jun 2022 11:57:56 +0000 (21:57 +1000)
commitca5dabcff1df6bc8c413922b5fa63cc602858803
treec57c2d398f1d4d9e47d78dadd3eb0d5af0b4f02a
parent7bc08056a6dabc3a1442216daf527edf61ac24b6
powerpc/prom_init: Fix build failure with GCC_PLUGIN_STRUCTLEAK_BYREF_ALL and KASAN

When CONFIG_KASAN is selected, we expect prom_init to use __memset()
because it is too early to use memset().

But with CONFIG_GCC_PLUGIN_STRUCTLEAK_BYREF_ALL, the compiler adds calls
to memset() to clear objects on stack, hence the following failure:

  PROMCHK arch/powerpc/kernel/prom_init_check
Error: External symbol 'memset' referenced from prom_init.c
make[2]: *** [arch/powerpc/kernel/Makefile:204 : arch/powerpc/kernel/prom_init_check] Erreur 1

prom_find_machine_type() is called from prom_init() and is called only
once, so lets put compat[] in BSS instead of stack to avoid that.

Signed-off-by: Christophe Leroy <christophe.leroy@csgroup.eu>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/3802811f7cf94f730be44688539c01bba3a3b5c0.1654875808.git.christophe.leroy@csgroup.eu
arch/powerpc/kernel/prom_init.c