Skip site navigation (1)Skip section navigation (2)
Date:      Wed, 6 Jan 2010 16:51:57 +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:  <201001061652.o06GqBes003521@repoman.freebsd.org>

next in thread | raw e-mail | index | archive | help
bz          2010-01-06 16:51:57 UTC

  FreeBSD src repository

  Modified files:        (Branch: RELENG_7)
    sys/netinet          tcp_input.c tcp_subr.c tcp_var.h 
  Log:
  SVN rev 201655 on 2010-01-06 16:51:57Z by bz
  
  MFC r184722:
  
    Fix a bug introduced with r182851 (r201653 in stable/7) 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
  
  Revision    Changes    Path
  1.370.2.17  +10 -9     src/sys/netinet/tcp_input.c
  1.300.2.17  +1 -1      src/sys/netinet/tcp_subr.c
  1.157.2.8   +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?201001061652.o06GqBes003521>