[TCP]: Change tcp_header_len member in tcp_sock to u16
authorArnaldo Carvalho de Melo <acme@mandriva.com>
Tue, 28 Nov 2006 02:48:32 +0000 (00:48 -0200)
committerDavid S. Miller <davem@sunset.davemloft.net>
Sun, 3 Dec 2006 05:30:53 +0000 (21:30 -0800)
With this we eliminate the last hole in struct tcp_sock.

End result:

[acme@newtoy net-2.6.20]$ codiff -sV /tmp/tcp.o.before net/ipv4/tcp.o
/pub/scm/linux/kernel/git/acme/net-2.6.20/net/ipv4/tcp.c:
  struct tcp_sock |   -4
    tcp_header_len;
     from: int                   /*  1000(0)     4(0) */
     to:   u16                   /*  1000(0)     2(0) */
 1 struct changed
[acme@newtoy net-2.6.20]$

Now sizeof(tcp_sock) is just...

[acme@newtoy net-2.6.20]$ pahole --sizes ../OUTPUT/qemu/net-2.6.20/net/ipv4/tcp.o | grep -w tcp_sock
struct tcp_sock: 1500 0

1500 bytes ;-)

Signed-off-by: Arnaldo Carvalho de Melo <acme@mandriva.com>
include/linux/tcp.h

index dd61b172ac68173e487b9833a0ef5105214e6c8e..b42ff0efc2df90135ec521d2a87099a793240778 100644 (file)
@@ -227,7 +227,8 @@ static inline struct tcp_request_sock *tcp_rsk(const struct request_sock *req)
 struct tcp_sock {
        /* inet_connection_sock has to be the first member of tcp_sock */
        struct inet_connection_sock     inet_conn;
-       int     tcp_header_len; /* Bytes of tcp header to send          */
+       u16     tcp_header_len; /* Bytes of tcp header to send          */
+       u16     xmit_size_goal; /* Goal for segmenting output packets   */
 
 /*
  *     Header prediction flags
@@ -268,8 +269,6 @@ struct tcp_sock {
        __u32   snd_wnd;        /* The window we expect to receive      */
        __u32   max_window;     /* Maximal window ever seen from peer   */
        __u32   mss_cache;      /* Cached effective mss, not including SACKS */
-       __u16   xmit_size_goal; /* Goal for segmenting output packets   */
-       /* XXX Two bytes hole, try to pack */
 
        __u32   window_clamp;   /* Maximal window to advertise          */
        __u32   rcv_ssthresh;   /* Current window clamp                 */