summaryrefslogtreecommitdiffstats
path: root/crypto/testmgr.c
diff options
context:
space:
mode:
authorGilad Ben-Yossef <gilad@benyossef.com>2019-07-02 07:39:20 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2019-07-26 00:51:57 -0400
commit9552389c465ed1ded39edf4a5642a861b53c2955 (patch)
tree38fd9580bdd5495075e63e950eda864aabaea16f /crypto/testmgr.c
parent76a95bd8f9e10cade9c4c8df93b5c20ff45dc0f5 (diff)
crypto: fips - add FIPS test failure notification chain
Crypto test failures in FIPS mode cause an immediate panic, but on some system the cryptographic boundary extends beyond just the Linux controlled domain. Add a simple atomic notification chain to allow interested parties to register to receive notification prior to us kicking the bucket. Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto/testmgr.c')
-rw-r--r--crypto/testmgr.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/crypto/testmgr.c b/crypto/testmgr.c
index d0b5b33806a6..8ba1e75cd973 100644
--- a/crypto/testmgr.c
+++ b/crypto/testmgr.c
@@ -5240,9 +5240,11 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask)
5240 type, mask); 5240 type, mask);
5241 5241
5242test_done: 5242test_done:
5243 if (rc && (fips_enabled || panic_on_fail)) 5243 if (rc && (fips_enabled || panic_on_fail)) {
5244 fips_fail_notify();
5244 panic("alg: self-tests for %s (%s) failed in %s mode!\n", 5245 panic("alg: self-tests for %s (%s) failed in %s mode!\n",
5245 driver, alg, fips_enabled ? "fips" : "panic_on_fail"); 5246 driver, alg, fips_enabled ? "fips" : "panic_on_fail");
5247 }
5246 5248
5247 if (fips_enabled && !rc) 5249 if (fips_enabled && !rc)
5248 pr_info("alg: self-tests for %s (%s) passed\n", driver, alg); 5250 pr_info("alg: self-tests for %s (%s) passed\n", driver, alg);