Skip site navigation (1)Skip section navigation (2)
Date:      Tue, 22 Mar 2016 15:55:17 +0000 (UTC)
From:      "Jonathan T. Looney" <jtl@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r297193 - head/sys/netinet
Message-ID:  <201603221555.u2MFtHgt068663@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jtl
Date: Tue Mar 22 15:55:17 2016
New Revision: 297193
URL: https://svnweb.freebsd.org/changeset/base/297193

Log:
  to_flags is currently a 64-bit integer; however, we only use 7 bits.
  Furthermore, there is no reason this needs to be a 64-bit integer
  for the forseeable future.
  
  Also, there is an inconsistency between to_flags and the mask in
  tcp_addoptions(). Before r195654, to_flags was a u_long and the mask in
  tcp_addoptions() was a u_int. r195654 changed to_flags to be a u_int64_t
  but left the mask in tcp_addoptions() as a u_int, meaning that these
  variables will only be the same width on platforms with 64-bit integers.
  
  Convert both to_flags and the mask in tcp_addoptions() to be explicitly
  32-bit variables. This may save a few cycles on 32-bit platforms, and
  avoids unnecessarily mixing types.
  
  Differential Revision:	https://reviews.freebsd.org/D5584
  Reviewed by:	hiren
  MFC after:	2 weeks
  Sponsored by:	Juniper Networks

Modified:
  head/sys/netinet/tcp_output.c
  head/sys/netinet/tcp_var.h

Modified: head/sys/netinet/tcp_output.c
==============================================================================
--- head/sys/netinet/tcp_output.c	Tue Mar 22 15:43:47 2016	(r297192)
+++ head/sys/netinet/tcp_output.c	Tue Mar 22 15:55:17 2016	(r297193)
@@ -1652,7 +1652,7 @@ tcp_setpersist(struct tcpcb *tp)
 int
 tcp_addoptions(struct tcpopt *to, u_char *optp)
 {
-	u_int mask, optlen = 0;
+	u_int32_t mask, optlen = 0;
 
 	for (mask = 1; mask < TOF_MAXOPT; mask <<= 1) {
 		if ((to->to_flags & mask) != mask)

Modified: head/sys/netinet/tcp_var.h
==============================================================================
--- head/sys/netinet/tcp_var.h	Tue Mar 22 15:43:47 2016	(r297192)
+++ head/sys/netinet/tcp_var.h	Tue Mar 22 15:55:17 2016	(r297193)
@@ -364,7 +364,7 @@ struct tcpcb {
  * options in tcp_addoptions.
  */
 struct tcpopt {
-	u_int64_t	to_flags;	/* which options are present */
+	u_int32_t	to_flags;	/* which options are present */
 #define	TOF_MSS		0x0001		/* maximum segment size */
 #define	TOF_SCALE	0x0002		/* window scaling */
 #define	TOF_SACKPERM	0x0004		/* SACK permitted */



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