lib/crypto: arm/poly1305: Remove unneeded empty weak function

Fix poly1305-armv4.pl to not do '.globl poly1305_blocks_neon' when
poly1305_blocks_neon() is not defined.  Then, remove the empty __weak
definition of poly1305_blocks_neon(), which was still needed only
because of that unnecessary globl statement.  (It also used to be needed
because the compiler could generate calls to it when
CONFIG_KERNEL_MODE_NEON=n, but that has been fixed.)

Thanks to Arnd Bergmann for reporting that the globl statement in the
asm file was still depending on the weak symbol.

Acked-by: Ard Biesheuvel <ardb@kernel.org>
Link: https://lore.kernel.org/r/20250711212822.6372-1-ebiggers@kernel.org
Signed-off-by: Eric Biggers <ebiggers@kernel.org>
This commit is contained in:
Eric Biggers 2025-07-11 14:28:22 -07:00
parent 9f65592b7e
commit 6e07c5e166
2 changed files with 1 additions and 6 deletions

View File

@ -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:

View File

@ -28,11 +28,6 @@ asmlinkage void poly1305_emit_arch(const struct poly1305_state *state,
const u32 nonce[4]);
EXPORT_SYMBOL_GPL(poly1305_emit_arch);
void __weak poly1305_blocks_neon(struct poly1305_block_state *state,
const u8 *src, u32 len, u32 hibit)
{
}
static __ro_after_init DEFINE_STATIC_KEY_FALSE(have_neon);
void poly1305_blocks_arch(struct poly1305_block_state *state, const u8 *src,