1. 13 Apr, 2017 33 commits
  2. 12 Apr, 2017 7 commits
    • Alexey Dobriyan's avatar
      net: make struct net_device::min_header_len 8-bit · d92be7a4
      Alexey Dobriyan authored
      This field is never big enough to warrant 16-bitness.
      
      8-bit accesses enjoy shorted encoding on i386/x86_64 than 16-bit
      accesses:
      
      	add/remove: 0/0 grow/shrink: 0/2 up/down: 0/-10 (-10)
      	function                                     old     new   delta
      	loopback_setup                               169     164      -5
      	ether_setup                                  148     143      -5
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d92be7a4
    • Alexey Dobriyan's avatar
      net: neigh: make ->hh_len 32-bit · 5b3dc2f3
      Alexey Dobriyan authored
      Using 16-bit ->hh_len doesn't save any memory, save some .text instead:
      
      	add/remove: 0/0 grow/shrink: 1/6 up/down: 2/-19 (-17)
      	function                                     old     new   delta
      	neigh_update                                2312    2314      +2
      	fwnet_header_cache                           199     197      -2
      	eth_header_cache                             101      99      -2
      	ip6_finish_output2                          2371    2368      -3
      	vrf_finish_output6                          1522    1518      -4
      	vrf_finish_output                           1413    1409      -4
      	ip_finish_output2                           1627    1623      -4
      Signed-off-by: default avatarAlexey Dobriyan <adobriyan@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      5b3dc2f3
    • Ilan Tayari's avatar
      gso: Support frag_list splitting with head_frag · eaffadbb
      Ilan Tayari authored
      A driver may use build_skb() for received packets.
      These SKBs then have a head_frag.
      
      Since commit d7e8883c ("net: make GRO aware of
      skb->head_frag"), GRO may build frag_list SKBs out of
      head_frag received SKBs.
      In such a case, the chained SKBs end up with a head_frag.
      
      Commit 07b26c94 ("gso: Support partial splitting at
      the frag_list pointer") adds partial segmentation of frag_list
      SKB chains into individual SKBs.
      However, this is not done if the chained SKBs have any
      linear part, because the device may not be able to DMA
      the private linear buffer.
      
      A chained frag_list SKB with head_frag is wrongfully
      detected in this case as having a private linear part
      and thus falls back to software GSO, while in fact the
      linear part is backed by a DMA page just like any other frag.
      
      This causes low performance when forwarding those packets
      that were built with build_skb()
      
      Allow partial segmentation at the frag_list pointer for
      chained SKBs with head_frag.
      
      Note that such SKBs can only be created by GRO, when applied
      to received packets with head_frag.
      Also note that this change only affects the data path that
      performs the partial segmentation at frag_list pointer, and
      not any of the other more common data paths.
      Signed-off-by: default avatarIlan Tayari <ilant@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      eaffadbb
    • David S. Miller's avatar
      Merge branch 'l2tp-const' · b94b8fce
      David S. Miller authored
      Guillaume Nault says:
      
      ====================
      l2tp: constify l2tp_session_get*() and l2tp_tunnel_find*()
      
      Declare parameters of these functions as "const" where possible.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b94b8fce
    • Guillaume Nault's avatar
      l2tp: define parameters of l2tp_tunnel_find*() as "const" · 2f858b92
      Guillaume Nault authored
      l2tp_tunnel_find() and l2tp_tunnel_find_nth() don't modify "net".
      Signed-off-by: default avatarGuillaume Nault <g.nault@alphalink.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2f858b92
    • Guillaume Nault's avatar
      l2tp: define parameters of l2tp_session_get*() as "const" · 9aaef50c
      Guillaume Nault authored
      Make l2tp_pernet()'s parameter constant, so that l2tp_session_get*() can
      declare their "net" variable as "const".
      Also constify "ifname" in l2tp_session_get_by_ifname().
      Signed-off-by: default avatarGuillaume Nault <g.nault@alphalink.fr>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9aaef50c
    • David S. Miller's avatar
      Merge branch 'ftgmac100-rework-batch4-misc' · 2a446c51
      David S. Miller authored
      Benjamin Herrenschmidt says:
      
      ====================
      ftgmac100: Rework batch 4 - Misc
      
      This is v2 of the fourth batch of updates to the ftgmac100 driver.
      
      This is a bunch of misc cleanups and fixes, such as properly
      disabling HW checksum generation on AST2400 where it's known
      to be broken and some chip init updates.
      
      This also adds the ability to turn HW checksum on/off and
      configure the ring sizes via ethtool.
      
      v2 Fixes patch 1/10 (NETIF_F_HW_CSUM conversion)
      
      The next (and last) batch will add a few more "features" such
      as netpoll, multicast/promist, vlan offload...
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2a446c51