1. 16 6月, 2016 5 次提交
  2. 15 6月, 2016 16 次提交
  3. 14 6月, 2016 1 次提交
  4. 13 6月, 2016 1 次提交
  5. 11 6月, 2016 6 次提交
  6. 10 6月, 2016 11 次提交
    • S
      vmxnet3: segCnt can be 1 for LRO packets · 50219538
      Shrikrishna Khare 提交于
      The device emulation may send segCnt of 1 for LRO packets.
      Signed-off-by: NShrikrishna Khare <skhare@vmware.com>
      Signed-off-by: NJin Heo <heoj@vmware.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      50219538
    • B
      mlxsw: core: Remove deprecated create_workqueue · 3d5479e9
      Bhaktipriya Shridhar 提交于
      alloc_workqueue replaces deprecated create_workqueue().
      
      A dedicated workqueue has been used since the workqueue
      mlxsw_wq is used for FDB notif. processing with workitems that are
      involved in normal device operation && because it's a network device
      which can be depended upon during memory reclaim.
      
      Workitems &trans->timeout_dw and &mlxsw_sp->fdb_notify.dw,
      map to mlxsw_sp_fdb_notify_work (processes FDB notifications from the
      underlying device and resolves the netdev to which the entry points to
      and notifies the bridge using the switchdev notifier) and
      mlxsw_emad_trans_timeout_work (provides async EMAD register access)
      respectively. They require forward progress under memory pressure and
      hence, WQ_MEM_RECLAIM has been set.
      
      Since there are only a fixed number of work items, explicit concurrency
      limit is unnecessary here.
      Signed-off-by: NBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Tested-by: NIdo Schimmel <idosch@mellanox.com>
      Acked-by: NJiri Pirko <jiri@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      3d5479e9
    • B
      net: cavium: liquidio: Remove deprecated create_workqueue · 292b9dab
      Bhaktipriya Shridhar 提交于
      alloc_workqueue replaces deprecated create_workqueue().
      
      A dedicated workqueue has been used since the workitem viz
      (&lio->txq_status_wq.wk.work which maps to octnet_poll_check_txq_status)
      is involved in a brief poll routine for checking transmit queue status
      and is an intergral part of normal device operation.
      WQ_MEM_RECLAIM has been set to guarantee forward progress under memory
      pressure, which is a requirement here.
      Since there are only a fixed number of work items, explicit concurrency
      limit is unnecessary.
      
      flush_workqueue is unnecessary since destroy_workqueue() itself calls
      drain_workqueue() which flushes repeatedly till the workqueue
      becomes empty.
      Signed-off-by: NBhaktipriya Shridhar <bhaktipriya96@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      292b9dab
    • E
      net/mlx4_en: fix ethtool -x · f7d3c1cb
      Eric Dumazet 提交于
      mlx4 RSS is limited to spread incoming packets to a power of two number
      of queues.
      
      An uniformly distibuted traffic would be split on queues 0 to N-1, N
      being a power of two, each queue having a 1/N weight.
      
      If number of RX queues is not a power of two, upper RX queues do not
      receive traffic.
      
      ethtool -x is lying, because it pretends some queues have higher weight.
      
      Before patch:
      
      lpaa24:~# ethtool -L eth1 rx 24
      lpaa24:~# ethtool -x eth1
      RX flow hash indirection table for eth1 with 24 RX ring(s):
          0:      0     1     2     3     4     5     6     7
          8:      8     9    10    11    12    13    14    15
         16:      0     1     2     3     4     5     6     7
      RSS hash key:
      e0:7c:3a:89:07:55:b6:58:69:cc:f4:e5:24:62:e3:25:88:6c:42:5b:d2:cb:9a:d2:e0:06:e1:dc:f9:09:a1:89:0f:a0:30:43:73:6f:0c:b6
      
      If this information was correct, user space tools could expect queues 0
      to 7 to receive twice more traffic than queues 8 to 15
      
      After patch :
      
      lpaa24:~# ethtool -L eth1 rx 24
      lpaa24:~# ethtool -x eth1
      RX flow hash indirection table for eth1 with 24 RX ring(s):
          0:      0     1     2     3     4     5     6     7
          8:      8     9    10    11    12    13    14    15
      RSS hash key:
      da:7b:09:60:f1:ac:67:b4:d0:72:d4:ec:a2:e5:80:0a:ad:50:22:1a:f8:f9:66:54:5f:22:45:c3:88:f4:57:82:c1:c1:90:ed:70:cb:40:ce
      lpaa24:~# ethtool -X eth1 equal 8
      lpaa24:~# ethtool -x eth1
      RX flow hash indirection table for eth1 with 24 RX ring(s):
          0:      0     1     2     3     4     5     6     7
          8:      0     1     2     3     4     5     6     7
      RSS hash key:
      da:7b:09:60:f1:ac:67:b4:d0:72:d4:ec:a2:e5:80:0a:ad:50:22:1a:f8:f9:66:54:5f:22:45:c3:88:f4:57:82:c1:c1:90:ed:70:cb:40:ce
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Reported-by: NMaciej Żenczykowski <maze@google.com>
      Cc: Eugenia Emantayev <eugenia@mellanox.com>
      Cc: Wei Wang <weiwan@google.com>
      Cc: Willem de Bruijn <willemb@google.com>
      Reviewed-by: NTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f7d3c1cb
    • B
      stmmac: fix parameter to dwmac4_set_umac_addr() · ca8bdaf1
      Ben Dooks 提交于
      The dwmac4_set_umac_addr() takes a struct mac_device_info as
      the first parameter, but is being passed a ioaddr instead from
      dwmac4_set_filter(). Fix the warning/bug by changing the first
      parameter.
      
      drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c:159:46: warning: incorrect type in argument 1 (different address spaces)
      drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c:159:46:    expected struct mac_device_info *hw
      drivers/net/ethernet/stmicro/stmmac/dwmac4_core.c:159:46:    got void [noderef] <asn:2>*ioaddr
      
      Note, only compile tested this as do not have any
      hardware with it in.
      Signed-off-by: NBen Dooks <ben.dooks@codethink.co.uk>
      Acked-by: NGiuseppe Cavallaro <peppe.cavallaro@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ca8bdaf1
    • H
      r8152: replace netdev_alloc_skb_ip_align with napi_alloc_skb · c8d83963
      hayeswang 提交于
      Replace netdev_alloc_skb_ip_align() with napi_alloc_skb() which can save
      several CPU cycles by avoiding having to disable and re-enable IRQs.
      Signed-off-by: NHayes Wang <hayeswang@realtek.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c8d83963
    • F
      bgmac: Maintain some netdev statistics · 6d490f62
      Florian Fainelli 提交于
      Add a few netdev statistics to report transmitted and received bytes and
      packets and a few obvious errors.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6d490f62
    • F
      bgmac: Add support for ethtool statistics · f6613d4f
      Florian Fainelli 提交于
      Read the statistics from the BGMAC's builtin MAC and return them to
      user-space using the standard ethtool helpers.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      f6613d4f
    • F
      bgmac: Bind net_device with backing device structure · 2022e9d5
      Florian Fainelli 提交于
      In preparation for allowing different helpers to be utilized against
      network devices created by the bgmac driver, make sure that we bind the
      net_device with core->dev.
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      2022e9d5
    • D
      net: vrf: Fix crash when IPv6 is disabled at boot time · e4348637
      David Ahern 提交于
      Frank Kellermann reported a kernel crash with 4.5.0 when IPv6 is
      disabled at boot using the kernel option ipv6.disable=1. Using
      current net-next with the boot option:
      
      $ ip link add red type vrf table 1001
      
      Generates:
      [12210.919584] BUG: unable to handle kernel NULL pointer dereference at 0000000000000748
      [12210.921341] IP: [<ffffffff814b30e3>] fib6_get_table+0x2c/0x5a
      [12210.922537] PGD b79e3067 PUD bb32b067 PMD 0
      [12210.923479] Oops: 0000 [#1] SMP
      [12210.924001] Modules linked in: ipvlan 8021q garp mrp stp llc
      [12210.925130] CPU: 3 PID: 1177 Comm: ip Not tainted 4.7.0-rc1+ #235
      [12210.926168] Hardware name: QEMU Standard PC (i440FX + PIIX, 1996), BIOS 1.7.5-20140531_083030-gandalf 04/01/2014
      [12210.928065] task: ffff8800b9ac4640 ti: ffff8800bacac000 task.ti: ffff8800bacac000
      [12210.929328] RIP: 0010:[<ffffffff814b30e3>]  [<ffffffff814b30e3>] fib6_get_table+0x2c/0x5a
      [12210.930697] RSP: 0018:ffff8800bacaf888  EFLAGS: 00010202
      [12210.931563] RAX: 0000000000000748 RBX: ffffffff81a9e280 RCX: ffff8800b9ac4e28
      [12210.932688] RDX: 00000000000000e9 RSI: 0000000000000002 RDI: 0000000000000286
      [12210.933820] RBP: ffff8800bacaf898 R08: ffff8800b9ac4df0 R09: 000000000052001b
      [12210.934941] R10: 00000000657c0000 R11: 000000000000c649 R12: 00000000000003e9
      [12210.936032] R13: 00000000000003e9 R14: ffff8800bace7800 R15: ffff8800bb3ec000
      [12210.937103] FS:  00007faa1766c700(0000) GS:ffff88013ac00000(0000) knlGS:0000000000000000
      [12210.938321] CS:  0010 DS: 0000 ES: 0000 CR0: 0000000080050033
      [12210.939166] CR2: 0000000000000748 CR3: 00000000b79d6000 CR4: 00000000000406e0
      [12210.940278] Stack:
      [12210.940603]  ffff8800bb3ec000 ffffffff81a9e280 ffff8800bacaf8c8 ffffffff814b3135
      [12210.941818]  ffff8800bb3ec000 ffffffff81a9e280 ffffffff81a9e280 ffff8800bace7800
      [12210.943040]  ffff8800bacaf8f0 ffffffff81397c88 ffff8800bb3ec000 ffffffff81a9e280
      [12210.944288] Call Trace:
      [12210.944688]  [<ffffffff814b3135>] fib6_new_table+0x24/0x8a
      [12210.945516]  [<ffffffff81397c88>] vrf_dev_init+0xd4/0x162
      [12210.946328]  [<ffffffff814091e1>] register_netdevice+0x100/0x396
      [12210.947209]  [<ffffffff8139823d>] vrf_newlink+0x40/0xb3
      [12210.948001]  [<ffffffff814187f0>] rtnl_newlink+0x5d3/0x6d5
      ...
      
      The problem above is due to the fact that the fib hash table is not
      allocated when IPv6 is disabled at boot.
      
      As for the VRF driver it should not do any IPv6 initializations if IPv6
      is disabled, so it needs to know if IPv6 is disabled at boot. The disable
      parameter is private to the IPv6 module, so provide an accessor for
      modules to determine if IPv6 was disabled at boot time.
      
      Fixes: 35402e31 ("net: Add IPv6 support to VRF device")
      Signed-off-by: NDavid Ahern <dsa@cumulusnetworks.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      e4348637
    • E
      net/mlx4_en: mlx4_en_netpoll() should schedule TX, not RX · 7d71e994
      Eric Dumazet 提交于
      I am not sure mlx4_en_netpoll() is doing anything useful right now.
      
      mlx4 has different NAPI structures for RX and TX, and netpoll only wants
      to drain TX queues.
      
      Lets schedule NAPI polls on TX, not RX.
      Signed-off-by: NEric Dumazet <edumazet@google.com>
      Cc: Maciej Żenczykowski <maze@google.com>
      Cc: Eric W. Biederman <ebiederm@xmission.com>
      Acked-by: NTariq Toukan <tariqt@mellanox.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      7d71e994