aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMichael Tuexen <tuexen@FreeBSD.org>2021-05-24 18:31:23 +0000
committerRichard Scheffenegger <rscheff@FreeBSD.org>2021-06-09 10:51:50 +0000
commit71b88ee39fc6427b6353e9210710a947a27f383f (patch)
tree401fca013673f85c49f5e768f2bce9acb23d6b9d
parent0230e6cf56eb6be41b075537a4752b898d27cc1d (diff)
downloadsrc-71b88ee39fc6427b6353e9210710a947a27f383f.tar.gz
src-71b88ee39fc6427b6353e9210710a947a27f383f.zip
tcp: fix a RACK socket buffer lock issue
Fix a missing socket buffer unlocking of the socket receive buffer. Reviewed by: gallatin, rrs MFC after: 1 week Sponsored by: Netflix, Inc. Differential Revision: https://reviews.freebsd.org/D30402 (cherry picked from commit 9bbd1a8fcb13928cd4b6cfddf0a8359d5dc97451)
-rw-r--r--sys/netinet/tcp_stacks/rack.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/sys/netinet/tcp_stacks/rack.c b/sys/netinet/tcp_stacks/rack.c
index bd17749bbd0e..f010c958951c 100644
--- a/sys/netinet/tcp_stacks/rack.c
+++ b/sys/netinet/tcp_stacks/rack.c
@@ -6063,7 +6063,7 @@ rack_clone_rsm(struct tcp_rack *rack, struct rack_sendmap *nrsm,
/* Push bit must go to the right edge as well */
if (rsm->r_flags & RACK_HAD_PUSH)
rsm->r_flags &= ~RACK_HAD_PUSH;
-
+
/*
* Now we need to find nrsm's new location in the mbuf chain
* we basically calculate a new offset, which is soff +
@@ -10492,6 +10492,7 @@ rack_do_fastnewdata(struct mbuf *m, struct tcphdr *th, struct socket *so,
rack_handle_delayed_ack(tp, rack, tlen, 0);
if (tp->snd_una == tp->snd_max)
sack_filter_clear(&rack->r_ctl.rack_sf, tp->snd_una);
+ tcp_handle_wakeup(tp, so);
return (1);
}