aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMateusz Guzik <mjg@FreeBSD.org>2022-02-16 07:45:12 +0000
committerMateusz Guzik <mjg@FreeBSD.org>2022-02-16 07:45:12 +0000
commit70439285ad9d5ec8ebdb1cf8617e8f30ea31b2e2 (patch)
tree48ddb615698a4d05b121f7b0ef31edaa0e6fe0e2
parent61a68e50d436333396ffd2e1d6a4b5d2875f8118 (diff)
downloadsrc-70439285ad9d5ec8ebdb1cf8617e8f30ea31b2e2.tar.gz
src-70439285ad9d5ec8ebdb1cf8617e8f30ea31b2e2.zip
crypto: hide crypto_destroyreq behind a tunable
Reviewed by: jhb, markj Sponsored by: Rubicon Communications, LLC ("Netgate") Differential Revision: https://reviews.freebsd.org/D32084
-rw-r--r--sys/opencrypto/crypto.c10
1 files changed, 10 insertions, 0 deletions
diff --git a/sys/opencrypto/crypto.c b/sys/opencrypto/crypto.c
index 0b2c250a7af2..fde1316595e5 100644
--- a/sys/opencrypto/crypto.c
+++ b/sys/opencrypto/crypto.c
@@ -202,6 +202,13 @@ SYSCTL_INT(_kern, OID_AUTO, cryptodevallowsoft, CTLFLAG_RWTUN,
"Enable/disable use of software crypto by /dev/crypto");
#endif
+#ifdef DIAGNOSTIC
+bool crypto_destroyreq_check;
+SYSCTL_BOOL(_kern_crypto, OID_AUTO, destroyreq_check, CTLFLAG_RWTUN,
+ &crypto_destroyreq_check, 0,
+ "Enable checks when destroying a request");
+#endif
+
MALLOC_DEFINE(M_CRYPTO_DATA, "crypto", "crypto session records");
static void crypto_dispatch_thread(void *arg);
@@ -1580,6 +1587,9 @@ crypto_destroyreq(struct cryptop *crp)
struct cryptop *crp2;
struct crypto_ret_worker *ret_worker;
+ if (!crypto_destroyreq_check)
+ return;
+
CRYPTO_Q_LOCK();
TAILQ_FOREACH(crp2, &crp_q, crp_next) {
KASSERT(crp2 != crp,