Module Name: src
Committed By: riastradh
Date: Thu May 19 20:51:59 UTC 2022
Modified Files:
src/sys/opencrypto: crypto.c
Log Message:
opencrypto: Assert !cpu_intr_p() on dispatch and invoke.
These should only ever have been potentially called from hard
interrupt context by CRYPTO_F_CBIMM callbacks (CBIMM = call back
immediately). CRYPTO_F_CBIMM is no more, so there is no more need to
allow this case of call from hard interrupt context.
To generate a diff of this commit:
cvs rdiff -u -r1.118 -r1.119 src/sys/opencrypto/crypto.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/opencrypto/crypto.c
diff -u src/sys/opencrypto/crypto.c:1.118 src/sys/opencrypto/crypto.c:1.119
--- src/sys/opencrypto/crypto.c:1.118 Thu May 19 20:51:46 2022
+++ src/sys/opencrypto/crypto.c Thu May 19 20:51:59 2022
@@ -1,4 +1,4 @@
-/* $NetBSD: crypto.c,v 1.118 2022/05/19 20:51:46 riastradh Exp $ */
+/* $NetBSD: crypto.c,v 1.119 2022/05/19 20:51:59 riastradh Exp $ */
/* $FreeBSD: src/sys/opencrypto/crypto.c,v 1.4.2.5 2003/02/26 00:14:05 sam Exp $ */
/* $OpenBSD: crypto.c,v 1.41 2002/07/17 23:52:38 art Exp $ */
@@ -53,7 +53,7 @@
*/
#include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: crypto.c,v 1.118 2022/05/19 20:51:46 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: crypto.c,v 1.119 2022/05/19 20:51:59 riastradh Exp $");
#include <sys/param.h>
#include <sys/reboot.h>
@@ -1264,6 +1264,7 @@ crypto_dispatch(struct cryptop *crp)
struct crypto_crp_q *crp_q;
KASSERT(crp != NULL);
+ KASSERT(!cpu_intr_p());
DPRINTF("crp %p, alg %d\n", crp, crp->crp_desc->crd_alg);
@@ -1373,6 +1374,7 @@ crypto_kdispatch(struct cryptkop *krp)
struct crypto_crp_kq *crp_kq;
KASSERT(krp != NULL);
+ KASSERT(!cpu_intr_p());
cryptostats.cs_kops++;
@@ -1439,6 +1441,7 @@ crypto_kinvoke(struct cryptkop *krp, int
int error;
KASSERT(krp != NULL);
+ KASSERT(!cpu_intr_p());
/* Sanity checks. */
if (krp->krp_callback == NULL) {
@@ -1524,6 +1527,7 @@ crypto_invoke(struct cryptop *crp, int h
struct cryptocap *cap;
KASSERT(crp != NULL);
+ KASSERT(!cpu_intr_p());
#ifdef CRYPTO_TIMING
if (crypto_timing)