1. 06 Feb, 2017 3 commits
    • Liad Kaufman's avatar
      iwlwifi: mvm: release static queues on bcast release · df88c08d
      Liad Kaufman authored
      A few of the static queues are enabled along with the bcast
      STA. Make sure they are removed along with it, rather than
      waiting for the mac ctxt release.
      
      This is needed because we sometimes have a STA being removed
      and then added again (either with the same sta_id or a
      different one). If we wait for the mac ctxt release we will
      try to allocate the queues again (as this is currently done
      in the STA allocation and not in the MAC init) although
      they weren't freed, and even if the sta_id of the STA has
      changed.
      Signed-off-by: default avatarLiad Kaufman <liad.kaufman@intel.com>
      Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
      df88c08d
    • Johannes Berg's avatar
      iwlwifi: mvm/pcie: adjust A-MSDU tx_cmd length in PCIe · 05e5a7e5
      Johannes Berg authored
      Instead of setting the tx_cmd length in the mvm code, which is
      complicated by the fact that DQA may want to temporarily store
      the SKB on the side, adjust the length in the PCIe code which
      also knows about this since it's responsible for duplicating
      all those headers that are account for in this code.
      
      As the PCIe code already relies on the tx_cmd->len field, this
      doesn't really introduce any new dependencies.
      
      To make this possible we need to move the memcpy() of the TX
      command until after it was updated.
      
      This does even simplify the code though, since the PCIe code
      already does a lot of manipulations to build A-MSDUs correctly
      and changing the length becomes a simple operation to see how
      much was added/removed, rather than predicting it.
      
      Fixes: 24afba76 ("iwlwifi: mvm: support bss dynamic alloc/dealloc of queues")
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
      05e5a7e5
    • Johannes Berg's avatar
      iwlwifi: mvm: overwrite skb info later · bd05a5bd
      Johannes Berg authored
      We don't really need clear the skb's status area nor store the
      dev_cmd into it until we really commit to the frame by handing
      it to the transport - defer those operations until just before
      we do that.
      
      This doesn't entirely fix the bug with frames not getting sent
      out after having been deferred due to DQA, because it doesn't
      restore the info->driver_data[0] place that was already set to
      zero (or another value) by the A-MSDU logic.
      
      Fixes: 24afba76 ("iwlwifi: mvm: support bss dynamic alloc/dealloc of queues")
      Signed-off-by: default avatarJohannes Berg <johannes.berg@intel.com>
      Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
      bd05a5bd
  2. 03 Feb, 2017 13 commits
  3. 02 Feb, 2017 2 commits
  4. 01 Feb, 2017 15 commits
  5. 31 Jan, 2017 7 commits
    • David S. Miller's avatar
      Merge branch 'bgmac-phy-init' · 624374a5
      David S. Miller authored
      Rafał Miłecki says:
      
      ====================
      net-next: use one struct bgmac & add PHY support
      
      This patchset adds support for initializing PHY using PHY subsystem.
      It's required e.g. for wireless access point devices that use bgmac
      supported Ethernet device connected to some external PHY.
      
      Implementing this required accessing phydev in bcma specific code which
      wasn't possible with core code allocating struct bgmac on its own. This
      is why I needed to modify alloc_etherdev usage first.
      ====================
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      624374a5
    • Rafał Miłecki's avatar
      net: bgmac: use PHY subsystem for initializing PHY · 8e6f31ba
      Rafał Miłecki authored
      This adds support for using bgmac with PHYs supported by standalone PHY
      drivers. Having any PHY initialization in bgmac is hacky and shouldn't
      be extended but rather removed if anyone has hardware to test it.
      Signed-off-by: default avatarRafał Miłecki <rafal@milecki.pl>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8e6f31ba
    • Rafał Miłecki's avatar
      net: bgmac: drop struct bcma_mdio we don't need anymore · aa8863e5
      Rafał Miłecki authored
      Adding struct bcma_mdio was a workaround for bcma code not having access
      to the struct bgmac used in the core code. Now we don't duplicate this
      struct we can just use it internally in bcma code.
      
      This simplifies code & allows access to all bgmac driver details from
      all places in bcma code.
      Signed-off-by: default avatarRafał Miłecki <rafal@milecki.pl>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      aa8863e5
    • Rafał Miłecki's avatar
      net: bgmac: allocate struct bgmac just once & don't copy it · 34a5102c
      Rafał Miłecki authored
      So far were were allocating struct bgmac in 3 places: platform code,
      bcma code and shared bgmac_enet_probe function. The reason for this was
      bgmac_enet_probe:
      1) Requiring early-filled struct bgmac
      2) Calling alloc_etherdev on its own in order to use netdev_priv later
      
      This solution got few drawbacks:
      1) Was duplicating allocating code
      2) Required copying early-filled struct
      3) Resulted in platform/bcma code having access only to unused struct
      
      Solve this situation by simply extracting some probe code into the new
      bgmac_alloc function.
      Signed-off-by: default avatarRafał Miłecki <rafal@milecki.pl>
      Reviewed-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      34a5102c
    • Florian Fainelli's avatar
      net: dsa: bcm_sf2: Fix build module · 953046e1
      Florian Fainelli authored
      Commit 7318166c ("net: dsa: bcm_sf2: Add support for
      ethtool::rxnfc") added a new object to build: bcm_sf2_cfp.o, but in
      doing so, we essentially just built this object and no longer bcm_sf2.o.
      
      Fix this by creating a module named bcm-sf2.ko which links in bcm_sf2.o
      and bcm_sf2_cfp.o.
      
      Fixes: 7318166c ("net: dsa: bcm_sf2: Add support for ethtool::rxnfc")
      Signed-off-by: default avatarFlorian Fainelli <f.fainelli@gmail.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      953046e1
    • Ganesh Goudar's avatar
      cxgb4: update latest firmware version supported · 0d909aa7
      Ganesh Goudar authored
      Change t4fw_version.h to update latest firmware version
      number 1.16.26.0.
      Signed-off-by: default avatarGanesh Goudar <ganeshgr@chelsio.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      0d909aa7
    • Alexei Starovoitov's avatar
      net: ethtool: convert large order kmalloc allocations to vzalloc · 4d1ceea8
      Alexei Starovoitov authored
      under memory pressure 'ethtool -S' command may warn:
      [ 2374.385195] ethtool: page allocation failure: order:4, mode:0x242c0c0
      [ 2374.405573] CPU: 12 PID: 40211 Comm: ethtool Not tainted
      [ 2374.423071] Call Trace:
      [ 2374.423076]  [<ffffffff8148cb29>] dump_stack+0x4d/0x64
      [ 2374.423080]  [<ffffffff811667cb>] warn_alloc_failed+0xeb/0x150
      [ 2374.423082]  [<ffffffff81169cd3>] ? __alloc_pages_direct_compact+0x43/0xf0
      [ 2374.423084]  [<ffffffff8116a25c>] __alloc_pages_nodemask+0x4dc/0xbf0
      [ 2374.423091]  [<ffffffffa0023dc2>] ? cmd_exec+0x722/0xcd0 [mlx5_core]
      [ 2374.423095]  [<ffffffff811b3dcc>] alloc_pages_current+0x8c/0x110
      [ 2374.423097]  [<ffffffff81168859>] alloc_kmem_pages+0x19/0x90
      [ 2374.423099]  [<ffffffff81186e5e>] kmalloc_order_trace+0x2e/0xe0
      [ 2374.423101]  [<ffffffff811c0084>] __kmalloc+0x204/0x220
      [ 2374.423105]  [<ffffffff816c269e>] dev_ethtool+0xe4e/0x1f80
      [ 2374.423106]  [<ffffffff816b967e>] ? dev_get_by_name_rcu+0x5e/0x80
      [ 2374.423108]  [<ffffffff816d6926>] dev_ioctl+0x156/0x560
      [ 2374.423111]  [<ffffffff811d4c68>] ? mem_cgroup_commit_charge+0x78/0x3c0
      [ 2374.423117]  [<ffffffff8169d542>] sock_do_ioctl+0x42/0x50
      [ 2374.423119]  [<ffffffff8169d9c3>] sock_ioctl+0x1b3/0x250
      [ 2374.423121]  [<ffffffff811f0f42>] do_vfs_ioctl+0x92/0x580
      [ 2374.423123]  [<ffffffff8100222b>] ? do_audit_syscall_entry+0x4b/0x70
      [ 2374.423124]  [<ffffffff8100287c>] ? syscall_trace_enter_phase1+0xfc/0x120
      [ 2374.423126]  [<ffffffff811f14a9>] SyS_ioctl+0x79/0x90
      [ 2374.423127]  [<ffffffff81002bb0>] do_syscall_64+0x50/0xa0
      [ 2374.423129]  [<ffffffff817e19bc>] entry_SYSCALL64_slow_path+0x25/0x25
      
      ~1160 mlx5 counters ~= order 4 allocation which is unlikely to succeed
      under memory pressure. Convert them to vzalloc() as ethtool_get_regs() does.
      Also take care of drivers without counters similar to
      commit 67ae7cf1 ("ethtool: Allow zero-length register dumps again")
      and reduce warn_on to warn_on_once.
      Signed-off-by: default avatarAlexei Starovoitov <ast@kernel.org>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      4d1ceea8