Page Menu
Home
FreeBSD
Search
Configure Global Search
Log In
Files
F111014439
D35383.id106613.diff
No One
Temporary
Actions
View File
Edit File
Delete File
View Transforms
Subscribe
Mute Notifications
Flag For Later
Award Token
Size
13 KB
Referenced Files
None
Subscribers
None
D35383.id106613.diff
View Options
Index: sys/contrib/openzfs/module/os/freebsd/zfs/crypto_os.c
===================================================================
--- sys/contrib/openzfs/module/os/freebsd/zfs/crypto_os.c
+++ sys/contrib/openzfs/module/os/freebsd/zfs/crypto_os.c
@@ -158,16 +158,16 @@
}
static int
-zfs_crypto_dispatch(freebsd_crypt_session_t *session, struct cryptop *crp)
+zfs_crypto_dispatch(freebsd_crypt_session_t *session, struct cryptop *crp)
{
int error;
+ error = 0;
crp->crp_opaque = session;
crp->crp_callback = freebsd_zfs_crypt_done;
for (;;) {
- error = crypto_dispatch(crp);
- if (error)
- break;
+ crypto_dispatch(crp);
+
mtx_lock(&session->fs_lock);
while (session->fs_done == false)
msleep(crp, &session->fs_lock, 0,
Index: sys/dev/cxgbe/crypto/t4_crypto.c
===================================================================
--- sys/dev/cxgbe/crypto/t4_crypto.c
+++ sys/dev/cxgbe/crypto/t4_crypto.c
@@ -1775,7 +1775,6 @@
ccr_soft(struct ccr_session *s, struct cryptop *crp)
{
struct cryptop *new;
- int error;
new = crypto_clonereq(crp, s->sw_session, M_NOWAIT);
if (new == NULL) {
@@ -1792,11 +1791,7 @@
*/
new->crp_opaque = crp;
new->crp_callback = ccr_soft_done;
- error = crypto_dispatch_async(new, CRYPTO_ASYNC_ORDERED);
- if (error != 0) {
- crp->crp_etype = error;
- crypto_done(crp);
- }
+ crypto_dispatch_async(new, CRYPTO_ASYNC_ORDERED);
}
static void
Index: sys/geom/eli/g_eli.c
===================================================================
--- sys/geom/eli/g_eli.c
+++ sys/geom/eli/g_eli.c
@@ -244,7 +244,6 @@
struct g_eli_softc *sc;
struct g_eli_worker *wr;
struct bio *bp;
- int error;
bp = (struct bio *)crp->crp_opaque;
sc = bp->bio_to->geom->softc;
@@ -259,12 +258,8 @@
crp->crp_session);
wr->w_sid = crp->crp_session;
crp->crp_etype = 0;
- error = crypto_dispatch(crp);
- if (error == 0)
- return (0);
- G_ELI_DEBUG(1, "%s: crypto_dispatch() returned %d.", __func__, error);
- crp->crp_etype = error;
- return (error);
+ crypto_dispatch(crp);
+ return (0);
}
static void
Index: sys/geom/eli/g_eli_crypto.c
===================================================================
--- sys/geom/eli/g_eli_crypto.c
+++ sys/geom/eli/g_eli_crypto.c
@@ -94,12 +94,10 @@
crp->crp_callback = g_eli_crypto_done;
crypto_use_buf(crp, data, datasize);
- error = crypto_dispatch(crp);
- if (error == 0) {
- while (crp->crp_opaque == NULL)
- tsleep(crp, PRIBIO, "geli", hz / 5);
- error = crp->crp_etype;
- }
+ crypto_dispatch(crp);
+ while (crp->crp_opaque == NULL)
+ tsleep(crp, PRIBIO, "geli", hz / 5);
+ error = crp->crp_etype;
crypto_freereq(crp);
crypto_freesession(sid);
Index: sys/geom/eli/g_eli_integrity.c
===================================================================
--- sys/geom/eli/g_eli_integrity.c
+++ sys/geom/eli/g_eli_integrity.c
@@ -456,7 +456,6 @@
u_int i, lsec, nsec, data_secsize, decr_secsize, encr_secsize;
off_t dstoff;
u_char *p, *data, *authkey, *plaindata;
- int error __diagused;
bool batch;
G_ELI_LOGREQ(3, bp, "%s", __func__);
@@ -579,9 +578,7 @@
if (batch) {
TAILQ_INSERT_TAIL(&crpq, crp, crp_next);
} else {
- error = crypto_dispatch(crp);
- KASSERT(error == 0,
- ("crypto_dispatch() failed (error=%d)", error));
+ crypto_dispatch(crp);
}
}
Index: sys/geom/eli/g_eli_privacy.c
===================================================================
--- sys/geom/eli/g_eli_privacy.c
+++ sys/geom/eli/g_eli_privacy.c
@@ -263,7 +263,7 @@
u_int i, nsec, secsize;
off_t dstoff;
u_char *data = NULL;
- int error __diagused, pages_offset;
+ int pages_offset;
bool batch;
G_ELI_LOGREQ(3, bp, "%s", __func__);
@@ -351,9 +351,7 @@
if (batch) {
TAILQ_INSERT_TAIL(&crpq, crp, crp_next);
} else {
- error = crypto_dispatch(crp);
- KASSERT(error == 0,
- ("crypto_dispatch() failed (error=%d)", error));
+ crypto_dispatch(crp);
}
}
Index: sys/kgssapi/krb5/kcrypto_aes.c
===================================================================
--- sys/kgssapi/krb5/kcrypto_aes.c
+++ sys/kgssapi/krb5/kcrypto_aes.c
@@ -119,15 +119,17 @@
static int
aes_crypto_cb(struct cryptop *crp)
{
- int error;
struct aes_state *as = (struct aes_state *) crp->crp_opaque;
+ int error;
if (CRYPTO_SESS_SYNC(crp->crp_session))
return (0);
error = crp->crp_etype;
- if (error == EAGAIN)
- error = crypto_dispatch(crp);
+ if (error == EAGAIN) {
+ crypto_dispatch(crp);
+ error = 0;
+ }
mtx_lock(&as->as_lock);
if (error || (crp->crp_flags & CRYPTO_F_DONE))
wakeup(crp);
@@ -142,7 +144,6 @@
{
struct aes_state *as = ks->ks_priv;
struct cryptop *crp;
- int error;
crp = crypto_getreq(as->as_session_aes, M_WAITOK);
@@ -162,13 +163,12 @@
crypto_use_buf(crp, buf, skip + len);
crp->crp_opaque = as;
crp->crp_callback = aes_crypto_cb;
-
- error = crypto_dispatch(crp);
+ crypto_dispatch(crp);
if (!CRYPTO_SESS_SYNC(as->as_session_aes)) {
mtx_lock(&as->as_lock);
- if (!error && !(crp->crp_flags & CRYPTO_F_DONE))
- error = msleep(crp, &as->as_lock, 0, "gssaes", 0);
+ if (!(crp->crp_flags & CRYPTO_F_DONE))
+ (void)msleep(crp, &as->as_lock, 0, "gssaes", 0);
mtx_unlock(&as->as_lock);
}
@@ -321,7 +321,6 @@
{
struct aes_state *as = ks->ks_priv;
struct cryptop *crp;
- int error;
crp = crypto_getreq(as->as_session_sha1, M_WAITOK);
@@ -332,13 +331,12 @@
crypto_use_mbuf(crp, inout);
crp->crp_opaque = as;
crp->crp_callback = aes_crypto_cb;
-
- error = crypto_dispatch(crp);
+ crypto_dispatch(crp);
if (!CRYPTO_SESS_SYNC(as->as_session_sha1)) {
mtx_lock(&as->as_lock);
- if (!error && !(crp->crp_flags & CRYPTO_F_DONE))
- error = msleep(crp, &as->as_lock, 0, "gssaes", 0);
+ if (!(crp->crp_flags & CRYPTO_F_DONE))
+ (void)msleep(crp, &as->as_lock, 0, "gssaes", 0);
mtx_unlock(&as->as_lock);
}
Index: sys/netipsec/xform_ah.c
===================================================================
--- sys/netipsec/xform_ah.c
+++ sys/netipsec/xform_ah.c
@@ -673,9 +673,10 @@
xd->cryptoid = cryptoid;
xd->vnet = curvnet;
if (V_async_crypto)
- return (crypto_dispatch_async(crp, CRYPTO_ASYNC_ORDERED));
+ crypto_dispatch_async(crp, CRYPTO_ASYNC_ORDERED);
else
- return (crypto_dispatch(crp));
+ crypto_dispatch(crp);
+ return (0);
bad:
m_freem(m);
key_freesav(&sav);
@@ -720,7 +721,8 @@
crypto_freesession(cryptoid);
xd->cryptoid = crp->crp_session;
CURVNET_RESTORE();
- return (crypto_dispatch(crp));
+ crypto_dispatch(crp);
+ return (0);
}
AHSTAT_INC(ahs_noxform);
DPRINTF(("%s: crypto error %d\n", __func__, crp->crp_etype));
@@ -1058,9 +1060,10 @@
xd->vnet = curvnet;
if (V_async_crypto)
- return (crypto_dispatch_async(crp, CRYPTO_ASYNC_ORDERED));
+ crypto_dispatch_async(crp, CRYPTO_ASYNC_ORDERED);
else
- return (crypto_dispatch(crp));
+ crypto_dispatch(crp);
+ return (0);
bad:
if (m)
m_freem(m);
@@ -1102,7 +1105,8 @@
crypto_freesession(cryptoid);
xd->cryptoid = crp->crp_session;
CURVNET_RESTORE();
- return (crypto_dispatch(crp));
+ crypto_dispatch(crp);
+ return (0);
}
AHSTAT_INC(ahs_noxform);
DPRINTF(("%s: crypto error %d\n", __func__, crp->crp_etype));
Index: sys/netipsec/xform_esp.c
===================================================================
--- sys/netipsec/xform_esp.c
+++ sys/netipsec/xform_esp.c
@@ -462,9 +462,10 @@
crp->crp_iv_start = skip + hlen - sav->ivlen;
if (V_async_crypto)
- return (crypto_dispatch_async(crp, CRYPTO_ASYNC_ORDERED));
+ crypto_dispatch_async(crp, CRYPTO_ASYNC_ORDERED);
else
- return (crypto_dispatch(crp));
+ crypto_dispatch(crp);
+ return (0);
crp_aad_fail:
free(xd, M_ESP);
@@ -512,7 +513,8 @@
crypto_freesession(cryptoid);
xd->cryptoid = crp->crp_session;
CURVNET_RESTORE();
- return (crypto_dispatch(crp));
+ crypto_dispatch(crp);
+ return (0);
}
/* EBADMSG indicates authentication failure. */
@@ -947,9 +949,10 @@
}
if (V_async_crypto)
- return (crypto_dispatch_async(crp, CRYPTO_ASYNC_ORDERED));
+ crypto_dispatch_async(crp, CRYPTO_ASYNC_ORDERED);
else
- return (crypto_dispatch(crp));
+ crypto_dispatch(crp);
+ return (0);
crp_aad_fail:
free(xd, M_ESP);
@@ -994,7 +997,8 @@
crypto_freesession(cryptoid);
xd->cryptoid = crp->crp_session;
CURVNET_RESTORE();
- return (crypto_dispatch(crp));
+ crypto_dispatch(crp);
+ return (0);
}
ESPSTAT_INC(esps_noxform);
DPRINTF(("%s: crypto error %d\n", __func__, crp->crp_etype));
Index: sys/netipsec/xform_ipcomp.c
===================================================================
--- sys/netipsec/xform_ipcomp.c
+++ sys/netipsec/xform_ipcomp.c
@@ -268,7 +268,8 @@
crp->crp_session = xd->cryptoid = sav->tdb_cryptoid;
SECASVAR_UNLOCK(sav);
- return crypto_dispatch(crp);
+ crypto_dispatch(crp);
+ return (0);
bad:
m_freem(m);
key_freesav(&sav);
@@ -312,7 +313,8 @@
crypto_freesession(cryptoid);
xd->cryptoid = crp->crp_session;
CURVNET_RESTORE();
- return (crypto_dispatch(crp));
+ crypto_dispatch(crp);
+ return (0);
}
IPCOMPSTAT_INC(ipcomps_noxform);
DPRINTF(("%s: crypto error %d\n", __func__, crp->crp_etype));
@@ -512,7 +514,8 @@
crp->crp_callback = ipcomp_output_cb;
crp->crp_opaque = xd;
- return crypto_dispatch(crp);
+ crypto_dispatch(crp);
+ return (0);
bad:
if (m)
m_freem(m);
@@ -554,7 +557,8 @@
crypto_freesession(cryptoid);
xd->cryptoid = crp->crp_session;
CURVNET_RESTORE();
- return (crypto_dispatch(crp));
+ crypto_dispatch(crp);
+ return (0);
}
IPCOMPSTAT_INC(ipcomps_noxform);
DPRINTF(("%s: crypto error %d\n", __func__, crp->crp_etype));
Index: sys/opencrypto/crypto.c
===================================================================
--- sys/opencrypto/crypto.c
+++ sys/opencrypto/crypto.c
@@ -1407,7 +1407,7 @@
}
#endif
-static int
+static void
crypto_dispatch_one(struct cryptop *crp, int hint)
{
struct cryptocap *cap;
@@ -1428,8 +1428,8 @@
cap = crp->crp_session->cap;
if (!atomic_load_int(&cap->cc_qblocked)) {
result = crypto_invoke(cap, crp, hint);
- if (result != ERESTART)
- return (result);
+ if (result == 0)
+ return;
/*
* The driver ran out of resources, put the request on the
@@ -1437,16 +1437,15 @@
*/
}
crypto_batch_enqueue(crp);
- return (0);
}
-int
+void
crypto_dispatch(struct cryptop *crp)
{
- return (crypto_dispatch_one(crp, 0));
+ crypto_dispatch_one(crp, 0);
}
-int
+void
crypto_dispatch_async(struct cryptop *crp, int flags)
{
struct crypto_ret_worker *ret_worker;
@@ -1456,7 +1455,8 @@
* The driver issues completions asynchonously, don't bother
* deferring dispatch to a worker thread.
*/
- return (crypto_dispatch(crp));
+ crypto_dispatch(crp);
+ return;
}
#ifdef INVARIANTS
@@ -1474,7 +1474,6 @@
}
TASK_INIT(&crp->crp_task, 0, crypto_task_invoke, crp);
taskqueue_enqueue(crypto_tq, &crp->crp_task);
- return (0);
}
void
@@ -1486,8 +1485,7 @@
while ((crp = TAILQ_FIRST(crpq)) != NULL) {
hint = TAILQ_NEXT(crp, crp_next) != NULL ? CRYPTO_HINT_MORE : 0;
TAILQ_REMOVE(crpq, crp, crp_next);
- if (crypto_dispatch_one(crp, hint) != 0)
- crypto_batch_enqueue(crp);
+ crypto_dispatch_one(crp, hint);
}
}
Index: sys/opencrypto/cryptodev.h
===================================================================
--- sys/opencrypto/cryptodev.h
+++ sys/opencrypto/cryptodev.h
@@ -623,9 +623,9 @@
device_t crypto_find_device_byhid(int hid);
int crypto_getcaps(int hid);
int crypto_unregister_all(uint32_t driverid);
-int crypto_dispatch(struct cryptop *crp);
+void crypto_dispatch(struct cryptop *crp);
#define CRYPTO_ASYNC_ORDERED 0x1 /* complete in order dispatched */
-int crypto_dispatch_async(struct cryptop *crp, int flags);
+void crypto_dispatch_async(struct cryptop *crp, int flags);
void crypto_dispatch_batch(struct cryptopq *crpq, int flags);
#define CRYPTO_SYMQ 0x1
int crypto_unblock(uint32_t, int);
Index: sys/opencrypto/cryptodev.c
===================================================================
--- sys/opencrypto/cryptodev.c
+++ sys/opencrypto/cryptodev.c
@@ -813,11 +813,7 @@
* results in a lock order reversal between crypto_dispatch forced
* entry and the crypto_done callback into us.
*/
- error = crypto_dispatch(crp);
- if (error != 0) {
- SDT_PROBE1(opencrypto, dev, ioctl, error, __LINE__);
- goto bail;
- }
+ crypto_dispatch(crp);
mtx_lock(&cse->lock);
while (!cod->done)
@@ -1016,11 +1012,7 @@
* results in a lock order reversal between crypto_dispatch forced
* entry and the crypto_done callback into us.
*/
- error = crypto_dispatch(crp);
- if (error != 0) {
- SDT_PROBE1(opencrypto, dev, ioctl, error, __LINE__);
- goto bail;
- }
+ crypto_dispatch(crp);
mtx_lock(&cse->lock);
while (!cod->done)
Index: sys/opencrypto/ktls_ocf.c
===================================================================
--- sys/opencrypto/ktls_ocf.c
+++ sys/opencrypto/ktls_ocf.c
@@ -200,15 +200,14 @@
oo.os = os;
oo.done = false;
+ error = 0;
crp->crp_opaque = &oo;
for (;;) {
async = !CRYPTO_SESS_SYNC(crp->crp_session);
crp->crp_callback = async ? ktls_ocf_callback_async :
ktls_ocf_callback_sync;
- error = crypto_dispatch(crp);
- if (error)
- break;
+ crypto_dispatch(crp);
if (async) {
mtx_lock(&os->lock);
while (!oo.done)
@@ -240,11 +239,7 @@
crp->crp_etype = 0;
crp->crp_flags &= ~CRYPTO_F_DONE;
counter_u64_add(ocf_retries, 1);
- error = crypto_dispatch(crp);
- if (error != 0) {
- crypto_destroyreq(crp);
- ktls_encrypt_cb(state, error);
- }
+ crypto_dispatch(crp);
return (0);
}
@@ -258,14 +253,10 @@
ktls_ocf_dispatch_async(struct ktls_ocf_encrypt_state *state,
struct cryptop *crp)
{
- int error;
-
crp->crp_opaque = state;
crp->crp_callback = ktls_ocf_dispatch_async_cb;
- error = crypto_dispatch(crp);
- if (error != 0)
- crypto_destroyreq(crp);
- return (error);
+ crypto_dispatch(crp);
+ return (0);
}
static int
File Metadata
Details
Attached
Mime Type
text/plain
Expires
Thu, Feb 27, 5:45 AM (19 h, 1 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
16863272
Default Alt Text
D35383.id106613.diff (13 KB)
Attached To
Mode
D35383: crypto: Remove the return value from crypto_dispatch(_async)()
Attached
Detach File
Event Timeline
Log In to Comment