On Fri, Jan 17, 2020 at 05:43:18PM +0100, Ard Biesheuvel wrote: > When the ARM accelerated ChaCha driver is built as part of a configuration > that has kernel mode NEON disabled, we expect the compiler to propagate > the build time constant expression IS_ENABLED(CONFIG_KERNEL_MODE_NEON) in > a way that eliminates all the cross-object references to the actual NEON > routines, which allows the chacha-neon-core.o object to be omitted from > the build entirely. > > Unfortunately, this fails to work as expected in some cases, and we may > end up with a build error such as > > chacha-glue.c:(.text+0xc0): undefined reference to `chacha_4block_xor_neon' > > caused by the fact that chacha_doneon() has not been eliminated from the > object code, even though it will never be called in practice. > > Let's fix this by adding some IS_ENABLED(CONFIG_KERNEL_MODE_NEON) tests > that are not strictly needed from a logical point of view, but should > help the compiler infer that the NEON code paths are unreachable in > those cases. > > Fixes: b36d8c09e710c71f ("crypto: arm/chacha - remove dependency on generic ...") > Reported-by: Russell King <linux@xxxxxxxxxxxxxxx> > Cc: Arnd Bergmann <arnd@xxxxxxxx> > Signed-off-by: Ard Biesheuvel <ardb@xxxxxxxxxx> > --- > arch/arm/crypto/chacha-glue.c | 4 ++-- > 1 file changed, 2 insertions(+), 2 deletions(-) Patch applied. Thanks. -- Email: Herbert Xu <herbert@xxxxxxxxxxxxxxxxxxx> Home Page: http://gondor.apana.org.au/~herbert/ PGP Key: http://gondor.apana.org.au/~herbert/pubkey.txt