提交 09a5ef96 编写于 作者: E Eric Biggers 提交者: Herbert Xu

crypto: testmgr - WARN on test failure

Currently, by default crypto self-test failures only result in a
pr_warn() message and an "unknown" status in /proc/crypto.  Both of
these are easy to miss.  There is also an option to panic the kernel
when a test fails, but that can't be the default behavior.

A crypto self-test failure always indicates a kernel bug, however, and
there's already a standard way to report (recoverable) kernel bugs --
the WARN() family of macros.  WARNs are noisier and harder to miss, and
existing test systems already know to look for them in dmesg or via
/proc/sys/kernel/tainted.

Therefore, call WARN() when an algorithm fails its self-tests.
Signed-off-by: NEric Biggers <ebiggers@google.com>
Signed-off-by: NHerbert Xu <herbert@gondor.apana.org.au>
上级 6e5972fa
...@@ -5664,14 +5664,20 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask) ...@@ -5664,14 +5664,20 @@ int alg_test(const char *driver, const char *alg, u32 type, u32 mask)
type, mask); type, mask);
test_done: test_done:
if (rc && (fips_enabled || panic_on_fail)) { if (rc) {
if (fips_enabled || panic_on_fail) {
fips_fail_notify(); fips_fail_notify();
panic("alg: self-tests for %s (%s) failed in %s mode!\n", panic("alg: self-tests for %s (%s) failed in %s mode!\n",
driver, alg, fips_enabled ? "fips" : "panic_on_fail"); driver, alg,
fips_enabled ? "fips" : "panic_on_fail");
}
WARN(1, "alg: self-tests for %s (%s) failed (rc=%d)",
driver, alg, rc);
} else {
if (fips_enabled)
pr_info("alg: self-tests for %s (%s) passed\n",
driver, alg);
} }
if (fips_enabled && !rc)
pr_info("alg: self-tests for %s (%s) passed\n", driver, alg);
return rc; return rc;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册