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:10:32 +0000 |
commit | cb2cd58dbd56f734f4346ce4db3d0412b2809667 (patch) | |
tree | 38fc739c5ebfaa66ae0d456b1dc0deafd26fcf18 | |
parent | bd8cecc466adeca0763cca674f83bfcc3a751356 (diff) | |
download | src-cb2cd58dbd56f734f4346ce4db3d0412b2809667.tar.gz src-cb2cd58dbd56f734f4346ce4db3d0412b2809667.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 b8005e213621..29a840067c62 100644 --- a/sys/dev/cxgbe/tom/t4_tls.c +++ b/sys/dev/cxgbe/tom/t4_tls.c @@ -1004,7 +1004,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; @@ -1075,22 +1075,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); |