diff options
author | Kacheong Poon <Kacheong.Poon@Sun.COM> | 2010-04-01 10:24:19 -0700 |
---|---|---|
committer | Kacheong Poon <Kacheong.Poon@Sun.COM> | 2010-04-01 10:24:19 -0700 |
commit | 66cd0f60c3182913d379abb730ae755bf6367126 (patch) | |
tree | cbdacc4e58656d42e7d3416641c7988a743eb17b /usr/src/uts/common/inet/tcp/tcp_output.c | |
parent | f32a9dd17a38682f8ac7fe31d66bdfaa0e68748d (diff) | |
download | illumos-joyent-66cd0f60c3182913d379abb730ae755bf6367126.tar.gz |
6935348 tcp_sack_info should always be there
6924317 TCP time wait processing is called unnecessarily
6924089 TCP Timer code does double time conversion
Diffstat (limited to 'usr/src/uts/common/inet/tcp/tcp_output.c')
-rw-r--r-- | usr/src/uts/common/inet/tcp/tcp_output.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/usr/src/uts/common/inet/tcp/tcp_output.c b/usr/src/uts/common/inet/tcp/tcp_output.c index 2a02d214f5..aee8d71a90 100644 --- a/usr/src/uts/common/inet/tcp/tcp_output.c +++ b/usr/src/uts/common/inet/tcp/tcp_output.c @@ -20,8 +20,7 @@ */ /* - * Copyright 2010 Sun Microsystems, Inc. All rights reserved. - * Use is subject to license terms. + * Copyright (c) 2010, Oracle and/or its affiliates. All rights reserved. */ /* This file contains all TCP output processing functions. */ @@ -1546,9 +1545,10 @@ tcp_close_output(void *arg, mblk_t *mp, void *arg2, ip_recv_attr_t *dummy) ASSERT(tcp->tcp_linger_tid == 0); + /* conn_lingertime is in sec. */ tcp->tcp_linger_tid = TCP_TIMER(tcp, tcp_close_linger_timeout, - connp->conn_lingertime * hz); + connp->conn_lingertime * MILLISEC); /* tcp_close_linger_timeout will finish close */ if (tcp->tcp_linger_tid == 0) @@ -3171,7 +3171,6 @@ tcp_sack_rexmit(tcp_t *tcp, uint_t *flags) mblk_t *xmit_mp; tcp_stack_t *tcps = tcp->tcp_tcps; - ASSERT(tcp->tcp_sack_info != NULL); ASSERT(tcp->tcp_notsack_list != NULL); ASSERT(tcp->tcp_rexmit == B_FALSE); @@ -3485,10 +3484,7 @@ tcp_process_shrunk_swnd(tcp_t *tcp, uint32_t shrunk_count) * If the SACK option is set, delete the entire list of * notsack'ed blocks. */ - if (tcp->tcp_sack_info != NULL) { - if (tcp->tcp_notsack_list != NULL) - TCP_NOTSACK_REMOVE_ALL(tcp->tcp_notsack_list, tcp); - } + TCP_NOTSACK_REMOVE_ALL(tcp->tcp_notsack_list, tcp); if (tcp->tcp_suna == tcp->tcp_snxt && tcp->tcp_swnd == 0) /* |