summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEric Biggers <ebiggers@google.com>2022-11-18 11:44:21 -0800
committerHerbert Xu <herbert@gondor.apana.org.au>2022-11-25 17:39:19 +0800
commitdeee0e68c8d85a5ba0fa69c28e0205f1e2f06d7d (patch)
tree7c45b4efa706d0be02ea3803303fe4ee5a4fadc4
parent458c772ad36daa1da7de52dd192f4ed9af1c99ba (diff)
downloadlinux-crypto-deee0e68c8d85a5ba0fa69c28e0205f1e2f06d7d.tar.gz
linux-crypto-deee0e68c8d85a5ba0fa69c28e0205f1e2f06d7d.zip
Revert "crypto: shash - avoid comparing pointers to exported functions under CFI"
This reverts commit d676b48fa74f5fb9d62de1673a63d390fc68bb47 because CFI no longer breaks cross-module function address equality, so crypto_shash_alg_has_setkey() can now be an inline function like before. This commit should not be backported to kernels that don't have the new CFI implementation. Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org> Reviewed-by: Sami Tolvanen <samitolvanen@google.com> Signed-off-by: Eric Biggers <ebiggers@google.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--crypto/shash.c18
1 files changed, 3 insertions, 15 deletions
diff --git a/crypto/shash.c b/crypto/shash.c
index 4c88e63b..0f854315 100644
--- a/crypto/shash.c
+++ b/crypto/shash.c
@@ -20,24 +20,12 @@
static const struct crypto_type crypto_shash_type;
-static int shash_no_setkey(struct crypto_shash *tfm, const u8 *key,
- unsigned int keylen)
+int shash_no_setkey(struct crypto_shash *tfm, const u8 *key,
+ unsigned int keylen)
{
return -ENOSYS;
}
-
-/*
- * Check whether an shash algorithm has a setkey function.
- *
- * For CFI compatibility, this must not be an inline function. This is because
- * when CFI is enabled, modules won't get the same address for shash_no_setkey
- * (if it were exported, which inlining would require) as the core kernel will.
- */
-bool crypto_shash_alg_has_setkey(struct shash_alg *alg)
-{
- return alg->setkey != shash_no_setkey;
-}
-EXPORT_SYMBOL_GPL(crypto_shash_alg_has_setkey);
+EXPORT_SYMBOL_GPL(shash_no_setkey);
static int shash_setkey_unaligned(struct crypto_shash *tfm, const u8 *key,
unsigned int keylen)