diff options
author | John Baldwin <jhb@FreeBSD.org> | 2023-09-08 23:30:52 +0000 |
---|---|---|
committer | John Baldwin <jhb@FreeBSD.org> | 2023-10-11 15:09:52 +0000 |
commit | dcb7939898635424daf4c65179bbac75fcb0b09b (patch) | |
tree | aa886596dc6ec85f613713bf52c3e3f91e6fc67e | |
parent | a2128fd12d6e3cf506541429ff3e4c29994c7c80 (diff) | |
download | src-dcb7939898635424daf4c65179bbac75fcb0b09b.tar.gz src-dcb7939898635424daf4c65179bbac75fcb0b09b.zip |
cxgbe t4_tls: Don't bother returning RX credits for a protocol receive error
Sponsored by: Chelsio Communications
Differential Revision: https://reviews.freebsd.org/D41689
(cherry picked from commit 75af2d951cce7d51d2033405f96f083c01f39f04)
-rw-r--r-- | sys/dev/cxgbe/tom/t4_tls.c | 18 |
1 files changed, 1 insertions, 17 deletions
diff --git a/sys/dev/cxgbe/tom/t4_tls.c b/sys/dev/cxgbe/tom/t4_tls.c index 3640ef410ca8..dcdbccb4fe7e 100644 --- a/sys/dev/cxgbe/tom/t4_tls.c +++ b/sys/dev/cxgbe/tom/t4_tls.c @@ -1125,7 +1125,7 @@ do_rx_data_tls(const struct cpl_rx_data *cpl, struct toepcb *toep, struct tcpcb *tp; struct socket *so; struct sockbuf *sb; - int len, rx_credits; + int len; len = m->m_pkthdr.len; @@ -1196,22 +1196,6 @@ do_rx_data_tls(const struct cpl_rx_data *cpl, struct toepcb *toep, so->so_error = EBADMSG; out: - /* - * This connection is going to die anyway, so probably don't - * need to bother with returning credits. - */ - rx_credits = sbspace(sb) > tp->rcv_wnd ? sbspace(sb) - tp->rcv_wnd : 0; -#ifdef VERBOSE_TRACES - CTR4(KTR_CXGBE, "%s: tid %u rx_credits %u rcv_wnd %u", - __func__, toep->tid, rx_credits, tp->rcv_wnd); -#endif - if (rx_credits > 0 && sbused(sb) + tp->rcv_wnd < sb->sb_lowat) { - rx_credits = send_rx_credits(toep->vi->adapter, toep, - rx_credits); - tp->rcv_wnd += rx_credits; - tp->rcv_adv += rx_credits; - } - sorwakeup_locked(so); SOCKBUF_UNLOCK_ASSERT(sb); |