From: Arnd Bergmann <arnd@xxxxxxxx> The reference to poly1305_blocks_neon from generated assembler code is apparently the reason we had the silly __weak function in the wrapper. Removing it introduced a link failure: ERROR: modpost: "poly1305_blocks_neon" [lib/crypto/arm/poly1305-arm.ko] undefined! Moving the reference inside of the #if ARMv7 block avoids this problem. Fixes: 16f9e0cc99ec ("lib/crypto: arm/poly1305: Remove unneeded empty weak function") Signed-off-by: Arnd Bergmann <arnd@xxxxxxxx> --- I see that the neon code is always built when targetting ARMv7, even in configurations without CONFIG_KERNEL_MODE_NEON where it is never called. I tried cleaning that up as well but couldn't figure it out. --- lib/crypto/arm/poly1305-armv4.pl | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/crypto/arm/poly1305-armv4.pl b/lib/crypto/arm/poly1305-armv4.pl index d57c6e2fc84a..dd7a996361a7 100644 --- a/lib/crypto/arm/poly1305-armv4.pl +++ b/lib/crypto/arm/poly1305-armv4.pl @@ -46,7 +46,6 @@ $code.=<<___; # define poly1305_init poly1305_block_init_arch # define poly1305_blocks poly1305_blocks_arm # define poly1305_emit poly1305_emit_arch -.globl poly1305_blocks_neon #endif #if defined(__thumb2__) @@ -722,6 +721,7 @@ poly1305_init_neon: ret @ bx lr .size poly1305_init_neon,.-poly1305_init_neon +.globl poly1305_blocks_neon .type poly1305_blocks_neon,%function .align 5 poly1305_blocks_neon: -- 2.39.5