summaryrefslogtreecommitdiff
path: root/crypto
diff options
context:
space:
mode:
authorArd Biesheuvel <ardb@kernel.org>2020-11-30 13:26:20 +0100
committerHerbert Xu <herbert@gondor.apana.org.au>2020-12-04 18:16:53 +1100
commita9c868434b8e5aeaee517c7a86621d5b7c80fbf9 (patch)
tree48b12404e5bcf211a803770080048a4fa27c4bc8 /crypto
parent910e98c7ca92bb1020f4daa8a4214821dfff9735 (diff)
downloadlinux-crypto-a9c868434b8e5aeaee517c7a86621d5b7c80fbf9.tar.gz
linux-crypto-a9c868434b8e5aeaee517c7a86621d5b7c80fbf9.zip
crypto: aegis128 - avoid spurious references crypto_aegis128_update_simd
Geert reports that builds where CONFIG_CRYPTO_AEGIS128_SIMD is not set may still emit references to crypto_aegis128_update_simd(), which cannot be satisfied and therefore break the build. These references only exist in functions that can be optimized away, but apparently, the compiler is not always able to prove this. So add some explicit checks for CONFIG_CRYPTO_AEGIS128_SIMD to help the compiler figure this out. Tested-by: Geert Uytterhoeven <geert@linux-m68k.org> Signed-off-by: Ard Biesheuvel <ardb@kernel.org> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/aegis128-core.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/crypto/aegis128-core.c b/crypto/aegis128-core.c
index 2b05f794..89dc1c55 100644
--- a/crypto/aegis128-core.c
+++ b/crypto/aegis128-core.c
@@ -89,7 +89,7 @@ static void crypto_aegis128_update_a(struct aegis_state *state,
const union aegis_block *msg,
bool do_simd)
{
- if (do_simd) {
+ if (IS_ENABLED(CONFIG_CRYPTO_AEGIS128_SIMD) && do_simd) {
crypto_aegis128_update_simd(state, msg);
return;
}
@@ -101,7 +101,7 @@ static void crypto_aegis128_update_a(struct aegis_state *state,
static void crypto_aegis128_update_u(struct aegis_state *state, const void *msg,
bool do_simd)
{
- if (do_simd) {
+ if (IS_ENABLED(CONFIG_CRYPTO_AEGIS128_SIMD) && do_simd) {
crypto_aegis128_update_simd(state, msg);
return;
}