diff options
author | Thirumalai Srinivasan <Thirumalai.Srinivasan@Sun.COM> | 2009-02-12 12:04:04 -0800 |
---|---|---|
committer | Thirumalai Srinivasan <Thirumalai.Srinivasan@Sun.COM> | 2009-02-12 12:04:04 -0800 |
commit | 43c1282c853276ba614c8b03a92b22b965cfb41f (patch) | |
tree | 3aae532af99dc1b0fb1f9453a5710b16c237b74a /usr/src/uts/common/inet/tcp/tcp_fusion.c | |
parent | d753835af57c7904d74f55a1251a643a5ddc47d1 (diff) | |
download | illumos-joyent-43c1282c853276ba614c8b03a92b22b965cfb41f.tar.gz |
6791375 assertion failed: tcp->tcp_xmit_tail_unsent == 0
Diffstat (limited to 'usr/src/uts/common/inet/tcp/tcp_fusion.c')
-rw-r--r-- | usr/src/uts/common/inet/tcp/tcp_fusion.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/usr/src/uts/common/inet/tcp/tcp_fusion.c b/usr/src/uts/common/inet/tcp/tcp_fusion.c index 1c69ced8a1..a8b6780cef 100644 --- a/usr/src/uts/common/inet/tcp/tcp_fusion.c +++ b/usr/src/uts/common/inet/tcp/tcp_fusion.c @@ -251,7 +251,9 @@ tcp_fuse(tcp_t *tcp, uchar_t *iphdr, tcph_t *tcph) * Fuse the endpoints; we perform further checks against both * tcp endpoints to ensure that a fusion is allowed to happen. * In particular we bail out for non-simple TCP/IP or if IPsec/ - * IPQoS policy/kernel SSL exists. + * IPQoS policy/kernel SSL exists. We also need to check if + * the connection is quiescent to cover the case when we are + * trying to re-enable fusion after IPobservability is turned off. */ ns = tcps->tcps_netstack; ipst = ns->netstack_ip; @@ -260,6 +262,7 @@ tcp_fuse(tcp_t *tcp, uchar_t *iphdr, tcph_t *tcph) !tcp_loopback_needs_ip(tcp, ns) && !tcp_loopback_needs_ip(peer_tcp, ns) && tcp->tcp_kssl_ent == NULL && + tcp->tcp_xmit_head == NULL && peer_tcp->tcp_xmit_head == NULL && !IPP_ENABLED(IPP_LOCAL_OUT|IPP_LOCAL_IN, ipst)) { mblk_t *mp; queue_t *peer_rq = peer_tcp->tcp_rq; |