Page MenuHomeFreeBSD

D8272.id21460.diff
No OneTemporary

D8272.id21460.diff

Index: sys/netinet/tcp_input.c
===================================================================
--- sys/netinet/tcp_input.c
+++ sys/netinet/tcp_input.c
@@ -3758,7 +3758,15 @@
(void)sbreserve_locked(&so->so_snd, bufsize, so, NULL);
}
SOCKBUF_UNLOCK(&so->so_snd);
- tp->t_maxseg = mss;
+ /*
+ * Sanity check: make sure that maxseg will be large
+ * enough to allow some data on segments even if the
+ * all the option space is used (40bytes). Otherwise
+ * funny things may happen in tcp_output.
+ *
+ * XXXGL: shouldn't we reserve space for IP/IPv6 options?
+ */
+ tp->t_maxseg = max(mss, 64);
SOCKBUF_LOCK(&so->so_rcv);
if ((so->so_rcv.sb_hiwat == V_tcp_recvspace) && metrics.rmx_recvpipe)

File Metadata

Mime Type
text/plain
Expires
Tue, Jan 27, 9:09 AM (19 h, 57 m)
Storage Engine
blob
Storage Format
Raw Data
Storage Handle
28053445
Default Alt Text
D8272.id21460.diff (715 B)

Event Timeline