diff --git a/sys/opencrypto/crypto.c b/sys/opencrypto/crypto.c --- a/sys/opencrypto/crypto.c +++ b/sys/opencrypto/crypto.c @@ -198,6 +198,13 @@ "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_proc(void); @@ -1519,6 +1526,9 @@ 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,