Page MenuHomeFreeBSD

D61516.1794684913.diff
No OneTemporary

Authored By
Unknown
Size
648 B
Referenced Files
None
Subscribers
None

D61516.1794684913.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, 7:35 PM (6 h, 42 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
41728700
Default Alt Text
D61516.1794684913.diff (648 B)

Event Timeline