From 46ea033be0b911accd012de60a52a497ccf4de31 Mon Sep 17 00:00:00 2001 From: =?utf8?q?Fr=C3=A9d=C3=A9ric=20L=C3=A9caille?= Date: Wed, 3 Nov 2021 18:39:59 +0100 Subject: [PATCH] MINOR: quic: Remove a useless lock for CRYPTO frames ->frms_rwlock is an old lock supposed to be used when several threads could handle the same connection. This is no more the case since this commit: "MINOR: quic: Attach the QUIC connection to a thread." --- include/haproxy/xprt_quic-t.h | 2 -- src/xprt_quic.c | 4 ---- 2 files changed, 6 deletions(-) diff --git a/include/haproxy/xprt_quic-t.h b/include/haproxy/xprt_quic-t.h index 7e843ab..df4f5b4 100644 --- a/include/haproxy/xprt_quic-t.h +++ b/include/haproxy/xprt_quic-t.h @@ -551,8 +551,6 @@ struct quic_enc_level { struct { uint64_t offset; struct eb_root frms; - /* must be protected from concurrent accesses */ - __decl_thread(HA_RWLOCK_T frms_rwlock); } crypto; } rx; struct { diff --git a/src/xprt_quic.c b/src/xprt_quic.c index af694cd..ddd6081 100644 --- a/src/xprt_quic.c +++ b/src/xprt_quic.c @@ -2649,7 +2649,6 @@ static inline int qc_treat_rx_crypto_frms(struct quic_enc_level *el, struct eb64_node *node; TRACE_ENTER(QUIC_EV_CONN_RXCDATA, ctx->conn); - HA_RWLOCK_WRLOCK(QUIC_LOCK, &el->rx.crypto.frms_rwlock); node = eb64_first(&el->rx.crypto.frms); while (node) { struct quic_rx_crypto_frm *cf; @@ -2666,12 +2665,10 @@ static inline int qc_treat_rx_crypto_frms(struct quic_enc_level *el, eb64_delete(&cf->offset_node); pool_free(pool_head_quic_rx_crypto_frm, cf); } - HA_RWLOCK_WRUNLOCK(QUIC_LOCK, &el->rx.crypto.frms_rwlock); TRACE_LEAVE(QUIC_EV_CONN_RXCDATA, ctx->conn); return 1; err: - HA_RWLOCK_WRUNLOCK(QUIC_LOCK, &el->rx.crypto.frms_rwlock); TRACE_DEVEL("leaving in error", QUIC_EV_CONN_RXCDATA, ctx->conn); return 0; } @@ -2878,7 +2875,6 @@ static int quic_conn_enc_level_init(struct quic_conn *qc, MT_LIST_INIT(&qel->rx.pqpkts); qel->rx.crypto.offset = 0; qel->rx.crypto.frms = EB_ROOT_UNIQUE; - HA_RWLOCK_INIT(&qel->rx.crypto.frms_rwlock); /* Allocate only one buffer. */ qel->tx.crypto.bufs = malloc(sizeof *qel->tx.crypto.bufs); -- 1.7.10.4