• Ilpo Järvinen's avatar
    [TCP]: Perform setting of common control fields in one place · e870a8ef
    Ilpo Järvinen authored
    In case of segments which are purely for control without any
    data (SYN/ACK/FIN/RST), many fields are set to common values
    in multiple places.
    
    i386 results:
    
    $ gcc --version
    gcc (GCC) 4.1.2 20070626 (Red Hat 4.1.2-13)
    
    $ codiff tcp_output.o.old tcp_output.o.new
    net/ipv4/tcp_output.c:
      tcp_xmit_probe_skb    |  -48
      tcp_send_ack          |  -56
      tcp_retransmit_skb    |  -79
      tcp_connect           |  -43
      tcp_send_active_reset |  -35
      tcp_make_synack       |  -42
      tcp_send_fin          |  -48
     7 functions changed, 351 bytes removed
    
    net/ipv4/tcp_output.c:
      tcp_init_nondata_skb |  +90
     1 function changed, 90 bytes added
    
    tcp_output.o.mid:
     8 functions changed, 90 bytes added, 351 bytes removed, diff: -261
    Signed-off-by: default avatarIlpo Järvinen <ilpo.jarvinen@helsinki.fi>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    e870a8ef
tcp_output.c 73 KB