MINOR: quic: ensure quic_conn is never removed on thread affinity rebind

On accept, quic_conn instance is migrated from its original thread to a
new one. This operation is conducted in two steps, on the original than
the new thread instance. During the interval, quic_conn is artificially
rendered inactive. It must never be accessed nor removed until migration
is completed via qc_finalize_affinity_rebind(). This new BUG_ON() will
enforce that removal is never conducted until migration is completed.
This commit is contained in:
Amaury Denoyelle 2024-07-01 15:36:33 +02:00
parent a4240fb26f
commit bfdf145859

View File

@ -1314,6 +1314,9 @@ void quic_conn_release(struct quic_conn *qc)
if (!qc)
goto leave;
/* Must not delete a quic_conn if thread affinity rebind in progress. */
BUG_ON(qc->flags & QUIC_FL_CONN_AFFINITY_CHANGED);
/* We must not free the quic-conn if the MUX is still allocated. */
BUG_ON(qc->mux_state == QC_MUX_READY);