Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 6 Nov 2008 13:25:59 +0000 (UTC)
From:      "Bjoern A. Zeeb" <bz@FreeBSD.org>
To:        cvs-src-old@freebsd.org
Subject:   cvs commit: src/sys/netinet tcp_input.c tcp_subr.c tcp_var.h
Message-ID:  <200811061326.mA6DQ6gi056469@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
bz          2008-11-06 13:25:59 UTC

  FreeBSD src repository

  Modified files:
    sys/netinet          tcp_input.c tcp_subr.c tcp_var.h 
  Log:
  SVN rev 184722 on 2008-11-06 13:25:59Z by bz
  
  Fix a bug introduced with r182851 splitting tcp_mss() into
  tcp_mss() and tcp_mss_update() so that tcp_mtudisc() could
  re-use the same code.
  
  Move the TSO logic back to tcp_mss() and out of tcp_mss_update().
  We tried to avoid that initially but if were are called from
  tcp_output() with EMSGSIZE, we cleared the TSO flag on the tcpcb
  there, called into tcp_mtudisc() and tcp_mss_update() which
  then would reenable TSO on the tcpcb based on TSO capabilities
  of the interface as learnt in tcp_maxmtu/6().
  So if TSO was enabled on the (possibly new) outgoing interface
  it was turned back on, which lead to an endless loop between
  tcp_output() and tcp_mtudisc() until we overflew the stack.
  
  Reported by:    kmacy
  MFC after:      2 months (along with r182851)
  
  Revision  Changes    Path
  1.389     +10 -9     src/sys/netinet/tcp_input.c
  1.321     +1 -1      src/sys/netinet/tcp_subr.c
  1.165     +1 -1      src/sys/netinet/tcp_var.h



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200811061326.mA6DQ6gi056469>