1. 09 Apr, 2015 16 commits
    • Eric Dumazet's avatar
      tcp: md5: fix a typo in tcp_v4_md5_lookup() · b52e6921
      Eric Dumazet authored
      Lookup key for tcp_md5_do_lookup() has to be taken
      from addr_sk, not sk (which can be the listener)
      
      Fixes: fd3a154a ("tcp: md5: get rid of tcp_v[46]_reqsk_md5_lookup()")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b52e6921
    • David S. Miller's avatar
      Merge branch 'xgbe-next' · 2e909523
      David S. Miller authored
      Tom Lendacky says:
      
      ====================
      amd-xgbe: AMD XGBE driver updates 2015-04-09
      
      The following series of patches includes functional updates and changes
      to the driver.
      
      - Allow ethtool rx-frames coalescing to be changed while the device is up
      - Consolidate initialization routine into the init function
      - Add support for the TX watchdog timeout
      
      This patch series is based on net-next.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      2e909523
    • Lendacky, Thomas's avatar
      amd-xgbe: Add support for the netdev Tx watchdog · a8373f1a
      Lendacky, Thomas authored
      Add support to be able to detect a hung Tx task by adding the netdev
      ndo_tx_timeout function callback. Do not set the watchdog_timeo value
      so as to use the system default time (currently 5 seconds).
      Signed-off-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      a8373f1a
    • Lendacky, Thomas's avatar
      amd-xgbe: Move Rx mode configuration into init · b876382b
      Lendacky, Thomas authored
      Currently a call to configure the Rx mode (promiscuous mode, all
      multicast mode, etc.) is made in xgbe_start separate from the xgbe_init
      function. This call to set the Rx mode should be part of the xgbe_init
      function so that calls to the init function don't have to be preceded
      with calls to configure the Rx mode.
      Signed-off-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      b876382b
    • Lendacky, Thomas's avatar
      amd-xgbe: Allow rx-frames coalescing to be changed anytime · 8dee19e6
      Lendacky, Thomas authored
      Currently the device must be down in order to update the rx-frames
      coalescing setting because the interrupt indicator is set in the
      descriptor data during initialization. Allow this setting to be changed
      while the device is up by moving the interrupt decision into the
      descriptor reset function and base the decision off of the supplied
      descriptor index value.
      Signed-off-by: default avatarTom Lendacky <thomas.lendacky@amd.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8dee19e6
    • Hubert Sokolowski's avatar
      net: Pass VLAN ID to rtnl_fdb_notify. · 1e53d5bb
      Hubert Sokolowski authored
      When an FDB entry is added or deleted the information about VLAN
      is not passed to listening applications like 'bridge monitor fdb'.
      With this patch VLAN ID is passed if it was set in the original
      netlink message.
      
      Also remove an unused bdev variable.
      Signed-off-by: default avatarHubert Sokolowski <hubert.sokolowski@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      1e53d5bb
    • David S. Miller's avatar
      Merge git://git.kernel.org/pub/scm/linux/kernel/git/pablo/nf-next · ca69d710
      David S. Miller authored
      Pablo Neira Ayuso says:
      
      ====================
      Netfilter updates for net-next
      
      The following patchset contains Netfilter updates for your net-next tree.
      They are:
      
      * nf_tables set timeout infrastructure from Patrick Mchardy.
      
      1) Add support for set timeout support.
      
      2) Add support for set element timeouts using the new set extension
         infrastructure.
      
      4) Add garbage collection helper functions to get rid of stale elements.
         Elements are accumulated in a batch that are asynchronously released
         via RCU when the batch is full.
      
      5) Add garbage collection synchronization helpers. This introduces a new
         element busy bit to address concurrent access from the netlink API and the
         garbage collector.
      
      5) Add timeout support for the nft_hash set implementation. The garbage
         collector peridically checks for stale elements from the workqueue.
      
      * iptables/nftables cgroup fixes:
      
      6) Ignore non full-socket objects from the input path, otherwise cgroup
         match may crash, from Daniel Borkmann.
      
      7) Fix cgroup in nf_tables.
      
      8) Save some cycles from xt_socket by skipping packet header parsing when
         skb->sk is already set because of early demux. Also from Daniel.
      
      * br_netfilter updates from Florian Westphal.
      
      9) Save frag_max_size and restore it from the forward path too.
      
      10) Use a per-cpu area to restore the original source MAC address when traffic
          is DNAT'ed.
      
      11) Add helper functions to access physical devices.
      
      12) Use these new physdev helper function from xt_physdev.
      
      13) Add another nf_bridge_info_get() helper function to fetch the br_netfilter
          state information.
      
      14) Annotate original layer 2 protocol number in nf_bridge info, instead of
          using kludgy flags.
      
      15) Also annotate the pkttype mangling when the packet travels back and forth
          from the IP to the bridge layer, instead of using a flag.
      
      * More nf_tables set enhancement from Patrick:
      
      16) Fix possible usage of set variant that doesn't support timeouts.
      
      17) Avoid spurious "set is full" errors from Netlink API when there are pending
          stale elements scheduled to be released.
      
      18) Restrict loop checks to set maps.
      
      19) Add support for dynamic set updates from the packet path.
      
      20) Add support to store optional user data (eg. comments) per set element.
      
      BTW, I have also pulled net-next into nf-next to anticipate the conflict
      resolution between your okfn() signature changes and Florian's br_netfilter
      updates.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ca69d710
    • David S. Miller's avatar
      Merge tag 'wireless-drivers-next-for-davem-2015-04-09' of... · 3ab1a30f
      David S. Miller authored
      Merge tag 'wireless-drivers-next-for-davem-2015-04-09' of git://git.kernel.org/pub/scm/linux/kernel/git/kvalo/wireless-drivers-next
      
      Kalle Valo says:
      
      ====================
      Major changes:
      
      iwlwifi:
      
      * some more work on LAR
      * fixes for UMAC scan
      * more work on debugging framework
      * more work for 8000 devices
      * cleanups and small bugfixes
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      3ab1a30f
    • David S. Miller's avatar
      Merge branch 'master' of git://git.kernel.org/pub/scm/linux/kernel/git/klassert/ipsec-next · 9399bdcb
      David S. Miller authored
      Steffen Klassert says:
      
      ====================
      pull request (net-next): ipsec-next 2015-04-09
      
      1) Prohibit the use/abuse of the xfrm netlink interface on
         32/64 bit compatibility tasks. We need a full compat
         layer before we can allow this. From Fan Du.
      
      Please pull or let me know if there are problems.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      9399bdcb
    • David S. Miller's avatar
      Merge branch 'dma_rmb_wmb' · 6fb8c381
      David S. Miller authored
      Alexander Duyck says:
      
      ====================
      Replace wmb()/rmb() with dma_wmb()/dma_rmb() where appropriate, round 2
      
      More cleanup of drivers in order to start making use of dma_rmb and dma_wmb
      calls.  This is another pass of what I would consider to be low hanging
      fruit.  There may be other opportunities to make use of the barriers in the
      Mellanox and Chelsio drivers but I didn't want to risk meddling with code I
      was not completely familiar with so I am leaving that for future work.
      
      I have revisited the Mellanox driver changes.  This time around I went only
      for the sections with a clearly defined pattern.  For dma_wmb I used it
      between accesses of the descriptor bits followed by owner or size.  For
      dma_rmb I used it to replace rmb following a read of the ownership bit in
      the descriptor.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6fb8c381
    • Alexander Duyck's avatar
      e100: Use dma_rmb/wmb where appropriate · c335869f
      Alexander Duyck authored
      Reduce the CPU overhead for transmit and receive by using lightweight dma_
      barriers instead of full barriers where they are applicable.
      
      Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
      Acked-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      c335869f
    • Alexander Duyck's avatar
      i40e/i40evf: Use dma_rmb where appropriate · 67317166
      Alexander Duyck authored
      Update i40e and i40evf to use dma_rmb.  This should improve performance by
      decreasing the barrier overhead on strong ordered architectures.
      
      Cc: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
      Acked-by: default avatarJeff Kirsher <jeffrey.t.kirsher@intel.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      67317166
    • Alexander Duyck's avatar
      mlx4/mlx5: Use dma_wmb/rmb where appropriate · 12b3375f
      Alexander Duyck authored
      This patch should help to improve the performance of the mlx4 and mlx5 on a
      number of architectures.  For example, on x86 the dma_wmb/rmb equates out
      to a barrer() call as the architecture is already strong ordered, and on
      PowerPC the call works out to a lwsync which is significantly less expensive
      than the sync call that was being used for wmb.
      
      I placed the new barriers between any spots that seemed to be trying to
      order memory/memory reads or writes, if there are any spots that involved
      MMIO I left the existing wmb in place as the new barriers cannot order
      transactions between coherent and non-coherent memories.
      
      v2: Reduced the replacments to just the spots where I could clearly
          identify the usage pattern.
      
      Cc: Amir Vadai <amirv@mellanox.com>
      Cc: Ido Shamay <idos@mellanox.com>
      Cc: Eli Cohen <eli@mellanox.com>
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      12b3375f
    • Alexander Duyck's avatar
      cxgb3/4/4vf: Update drivers to use dma_rmb/wmb where appropriate · 019be1cf
      Alexander Duyck authored
      Update the Chelsio Ethernet drivers to use the dma_rmb/wmb calls instead of
      the full barriers in order to improve performance.
      
      Cc: Santosh Raspatur <santosh@chelsio.com>
      Cc: Hariprasad S <hariprasad@chelsio.com>
      Cc: Casey Leedom <leedom@chelsio.com>
      Signed-off-by: default avatarAlexander Duyck <alexander.h.duyck@redhat.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      019be1cf
    • WANG Cong's avatar
      vxlan: do not exit on error in vxlan_stop() · f13b1689
      WANG Cong authored
      We need to clean up vxlan despite vxlan_igmp_leave() fails.
      
      This fixes the following kernel warning:
      
       WARNING: CPU: 0 PID: 6 at lib/debugobjects.c:263 debug_print_object+0x7c/0x8d()
       ODEBUG: free active (active state 0) object type: timer_list hint: vxlan_cleanup+0x0/0xd0
       CPU: 0 PID: 6 Comm: kworker/u8:0 Not tainted 4.0.0-rc7+ #953
       Hardware name: Bochs Bochs, BIOS Bochs 01/01/2011
       Workqueue: netns cleanup_net
        0000000000000009 ffff88011955f948 ffffffff81a25f5a 00000000253f253e
        ffff88011955f998 ffff88011955f988 ffffffff8107608e 0000000000000000
        ffffffff814deba2 ffff8800d4e94000 ffffffff82254c30 ffffffff81fbe455
       Call Trace:
        [<ffffffff81a25f5a>] dump_stack+0x4c/0x65
        [<ffffffff8107608e>] warn_slowpath_common+0x9c/0xb6
        [<ffffffff814deba2>] ? debug_print_object+0x7c/0x8d
        [<ffffffff81076116>] warn_slowpath_fmt+0x46/0x48
        [<ffffffff814deba2>] debug_print_object+0x7c/0x8d
        [<ffffffff81666bf1>] ? vxlan_fdb_destroy+0x5b/0x5b
        [<ffffffff814dee02>] __debug_check_no_obj_freed+0xc3/0x15f
        [<ffffffff814df728>] debug_check_no_obj_freed+0x12/0x16
        [<ffffffff8117ae4e>] slab_free_hook+0x64/0x6c
        [<ffffffff8114deaa>] ? kvfree+0x31/0x33
        [<ffffffff8117dc66>] kfree+0x101/0x1ac
        [<ffffffff8114deaa>] kvfree+0x31/0x33
        [<ffffffff817d4137>] netdev_freemem+0x18/0x1a
        [<ffffffff817e8b52>] netdev_release+0x2e/0x32
        [<ffffffff815b4163>] device_release+0x5a/0x92
        [<ffffffff814bd4dd>] kobject_cleanup+0x49/0x5e
        [<ffffffff814bd3ff>] kobject_put+0x45/0x49
        [<ffffffff817d3fc1>] netdev_run_todo+0x26f/0x283
        [<ffffffff817d4873>] ? rollback_registered_many+0x20f/0x23b
        [<ffffffff817e0c80>] rtnl_unlock+0xe/0x10
        [<ffffffff817d4af0>] default_device_exit_batch+0x12a/0x139
        [<ffffffff810aadfa>] ? wait_woken+0x8f/0x8f
        [<ffffffff817c8e14>] ops_exit_list+0x2b/0x57
        [<ffffffff817c9b21>] cleanup_net+0x154/0x1e7
        [<ffffffff8108b05d>] process_one_work+0x255/0x4ad
        [<ffffffff8108af69>] ? process_one_work+0x161/0x4ad
        [<ffffffff8108b4b1>] worker_thread+0x1cd/0x2ab
        [<ffffffff8108b2e4>] ? process_scheduled_works+0x2f/0x2f
        [<ffffffff81090686>] kthread+0xd4/0xdc
        [<ffffffff8109eca3>] ? local_clock+0x19/0x22
        [<ffffffff810905b2>] ? __kthread_parkme+0x83/0x83
        [<ffffffff81a31c48>] ret_from_fork+0x58/0x90
        [<ffffffff810905b2>] ? __kthread_parkme+0x83/0x83
      
      For the long-term, we should handle NETDEV_{UP,DOWN} event
      from the lower device of a tunnel device.
      
      Fixes: 56ef9c90 ("vxlan: Move socket initialization to within rtnl scope")
      Cc: Marcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Signed-off-by: default avatarCong Wang <xiyou.wangcong@gmail.com>
      Acked-by: default avatarMarcelo Ricardo Leitner <marcelo.leitner@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      f13b1689
    • Eric Dumazet's avatar
      tcp: do not rearm rsk_timer on FastOpen requests · dd929c1b
      Eric Dumazet authored
      FastOpen requests are not like other regular request sockets.
      
      They do not yet use rsk_timer : tcp_fastopen_queue_check()
      simply manually removes one expired request from fastopenq->rskq_rst
      list.
      
      Therefore, tcp_check_req() must not call mod_timer_pending(),
      otherwise we crash because rsk_timer was not initialized.
      
      Fixes: fa76ce73 ("inet: get rid of central tcp/dccp listener timer")
      Signed-off-by: default avatarEric Dumazet <edumazet@google.com>
      Signed-off-by: default avatarYuchung Cheng <ycheng@google.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      dd929c1b
  2. 08 Apr, 2015 24 commits