crypto: hide crypto_destroyreq behind a tunable

Reviewed by:	jhb, markj
Sponsored by:	Rubicon Communications, LLC ("Netgate")
Differential Revision:	https://reviews.freebsd.org/D32084
This commit is contained in:
Mateusz Guzik 2022-02-16 07:45:12 +00:00
parent 61a68e50d4
commit 70439285ad

View file

@ -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,