Page MenuHomeFreeBSD

D61516.1794700543.diff
No OneTemporary

Authored By
Unknown
Size
648 B
Referenced Files
None
Subscribers
None

D61516.1794700543.diff

diff --git a/sys/opencrypto/crypto.c b/sys/opencrypto/crypto.c
--- a/sys/opencrypto/crypto.c
+++ b/sys/opencrypto/crypto.c
@@ -1883,6 +1883,15 @@
if (crpt->crp_seq == ret_worker->reorder_cur_seq) {
TAILQ_REMOVE(&ret_worker->crp_ordered_ret_q, crpt, crp_next);
ret_worker->reorder_cur_seq++;
+
+ /*
+ * The sequence number is spent. A callback
+ * that dispatches the request again, as
+ * consumers do after EAGAIN, must not bring it
+ * back to this queue under a number the
+ * thread will never wait for again.
+ */
+ crpt->crp_flags &= ~CRYPTO_F_ASYNC_ORDERED;
} else {
crpt = NULL;
}

File Metadata

Mime Type
text/plain
Expires
Sat, Nov 14, 11:55 PM (14 h, 53 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
41728700
Default Alt Text
D61516.1794700543.diff (648 B)

Event Timeline