Skip to content
  1. Mar 08, 2016
  2. Mar 07, 2016
  3. Mar 05, 2016
  4. Mar 04, 2016
  5. Mar 03, 2016
    • David S. Miller's avatar
      Merge branch 'dwc_eth_qos' · ebc9780c
      David S. Miller authored
      
      
      Lars Persson says:
      
      ====================
      dwc_eth_qos: stability fixes and support for CMA
      
      This series has bug fixes for the dwc_eth_qos ethernet driver.
      
      Mainly two stability fixes for problems found by Rabin Vincent:
      - Successive starts and stops of the interface would trigger a DMA reset timeout.
      - A race condition in the TX DMA handling could trigger a netdev watchdog
       timeout.
      
      The memory allocation was improved to support use of the CMA as DMA allocator
      backend.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ebc9780c
    • Lars Persson's avatar
      dwc_eth_qos: do phy_start before resetting hardware · cd5e4123
      Lars Persson authored
      This reverts the changed init order from commit 3647bc35
      
      
      ("dwc_eth_qos: Reset hardware before PHY start") and makes another fix
      for the race.
      
      It turned out that the reset state machine of the dwceqos hardware
      requires PHY clocks to be present in order to complete the reset
      cycle.
      
      To plug the race with the phy state machine we defer link speed
      setting until the hardware init has finished.
      
      Signed-off-by: default avatarLars Persson <larper@axis.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      cd5e4123
    • Rabin Vincent's avatar
      dwc_eth_qos: use DWCEQOS_MSG_DEFAULT · 016a91c6
      Rabin Vincent authored
      
      
      Since debug is hardcoded to 3, the defaults in the DWCEQOS_MSG_DEFAULT
      macro are never used, which does not seem to be the intended behaviour
      here.  Set debug to -1 like other drivers so that DWCEQOS_MSG_DEFAULT is
      actually used by default.
      
      Signed-off-by: default avatarRabin Vincent <rabinv@axis.com>
      Signed-off-by: default avatarLars Persson <larper@axis.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      016a91c6
    • Rabin Vincent's avatar
      dwc_eth_qos: use GFP_KERNEL in dma_alloc_coherent() · e8b0c32e
      Rabin Vincent authored
      
      
      Since we are in non-atomic context here we can pass GFP_KERNEL to
      dma_alloc_coherent(). This enables use of the CMA.
      
      Signed-off-by: default avatarRabin Vincent <rabinv@axis.com>
      Signed-off-by: default avatarLars Persson <larper@axis.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      e8b0c32e
    • Lars Persson's avatar
      dwc_eth_qos: release descriptors outside netif_tx_lock · d4dc35f2
      Lars Persson authored
      
      
      To prepare for using the CMA, we can not be in atomic context when
      de-allocating DMA buffers.
      
      The tx lock was needed only to protect the hw reset against the xmit
      handler. Now we briefly grab the tx lock while stopping the queue to
      make sure no thread is inside or will enter the xmit handler.
      
      Signed-off-by: default avatarLars Persson <larper@axis.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      d4dc35f2
    • Rabin Vincent's avatar
      dwc_eth_qos: fix race condition in dwceqos_start_xmit · 8afb6c47
      Rabin Vincent authored
      
      
      The xmit handler and the tx_reclaim tasklet had a race on the tx_free
      variable which could lead to a tx timeout if tx_free was updated after
      the tx complete interrupt.
      
      Signed-off-by: default avatarRabin Vincent <rabinv@axis.com>
      Signed-off-by: default avatarLars Persson <larper@axis.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      8afb6c47
    • David S. Miller's avatar
      Merge branch 'mlx4-fixes' · 11351bf7
      David S. Miller authored
      
      
      Or Gerlitz says:
      
      ====================
      Mellanox 10/40G mlx4 driver fixes for 4.5-rc6
      
      This series contains two fixes for the SRIOV HW LAG that was
      introduced in 4.5-rc1 and one fix that allows to revoke the
      administrative MAC that was assigned to VF through the PF.
      
      The VF mac fix needs to go for stable too.
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      11351bf7
    • Jack Morgenstein's avatar
      net/mlx4_core: Allow resetting VF admin mac to zero · 6e522422
      Jack Morgenstein authored
      The VF administrative mac addresses (stored in the PF driver) are
      initialized to zero when the PF driver starts up.
      
      These addresses may be modified in the PF driver through ndo calls
      initiated by iproute2 or libvirt.
      
      While we allow the PF/host to change the VF admin mac address from zero
      to a valid unicast mac, we do not allow restoring the VF admin mac to
      zero. We currently only allow changing this mac to a different unicast mac.
      
      This leads to problems when libvirt scripts are used to deal with
      VF mac addresses, and libvirt attempts to revoke the mac so this
      host will not use it anymore.
      
      Fix this by allowing resetting a VF administrative MAC back to zero.
      
      Fixes: 8f7ba3ca
      
       ('net/mlx4: Add set VF mac address support')
      Signed-off-by: default avatarJack Morgenstein <jackm@dev.mellanox.co.il>
      Reported-by: default avatarMoshe Levi <moshele@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      6e522422
    • Moni Shoua's avatar
      net/mlx4_core: Check the correct limitation on VFs for HA mode · 00ada910
      Moni Shoua authored
      The limit of 63 is only for virtual functions while the actual enforcement
      was for VFs plus physical functions, fix that.
      
      Fixes: e57968a1
      
       ('net/mlx4_core: Support the HA mode for SRIOV VFs too')
      Signed-off-by: default avatarMoni Shoua <monis@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      00ada910
    • Jack Morgenstein's avatar
      net/mlx4_core: Fix lockdep warning in handling of mac/vlan tables · 03a79f31
      Jack Morgenstein authored
      In the mac and vlan register/unregister/replace functions, the driver locks
      the mac table mutex (or vlan table mutex) on both ports.
      
      We move to use mutex_lock_nested() to prevent warnings, such as the one below.
      
      [ 101.828445] =============================================
      [ 101.834820] [ INFO: possible recursive locking detected ]
      [ 101.841199] 4.5.0-rc2+  #49 Not tainted
      [ 101.850251] ---------------------------------------------
      [ 101.856621] modprobe/3054 is trying to acquire lock:
      [ 101.862514] (&table->mutex#2){+.+.+.}, at: [<ffffffffa079c10e>] __mlx4_register_mac+0x87e/0xa90 [mlx4_core]
      [ 101.874598]
      [ 101.874598] but task is already holding lock:
      [ 101.881703] (&table->mutex#2){+.+.+.}, at: [<ffffffffa079c0f0>] __mlx4_register_mac+0x860/0xa90 [mlx4_core]
      [ 101.893776]
      [ 101.893776] other info that might help us debug this:
      [ 101.901658] Possible unsafe locking scenario:
      [ 101.901658]
      [ 101.908859] CPU0
      [ 101.911923] ----
      [ 101.914985] lock(&table->mutex#2);
      [ 101.919595] lock(&table->mutex#2);
      [ 101.924199]
      [ 101.924199] * DEADLOCK *
      [ 101.924199]
      [ 101.931643] May be due to missing lock nesting notation
      
      Fixes: 5f61385d
      
       ('net/mlx4_core: Keep VLAN/MAC tables mirrored in multifunc HA mode')
      Signed-off-by: default avatarJack Morgenstein <jackm@dev.mellanox.co.il>
      Suggested-by: default avatarDoron Tsur <doront@mellanox.com>
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      03a79f31
    • David S. Miller's avatar
      Merge branch 'mlx5-fixes' · ebc363f5
      David S. Miller authored
      Saeed Mahameed says:
      
      ====================
      Mellanox 100G mlx5 driver fixes
      
      This series has few bug fixes for the mlx5 Ethernet driver.
      
      Eran fixed a locking issue with time-stamping that could cause a
      soft-lockup when time-stamping is enabled.
      
      Gal fixed the rx/tx packets/bytes counters returned by the driver to
      actually went through the network stack.
      
      Tariq removed a poll CQ optimization which could lead the driver to
      stop getting interrupts for some of the rings, and a did also fix to
      HW LRO which is currently broken.
      
      He also provided RSS and RX hash fixes for the case of changing the
      number of rx rings the RX hash/RSS configuration will be out of sync.
      
      The time stamping fix from Eran is not for -stable as the feature was
      only introduced in 4.5 but all of the others are.
      
      Changes fro V0:
      	- Eran addressed the irqsave/restore comments from "Dave" and fixed them.
      
      This series is generated against net commit 4c0b6eaf
      
       'net:
      thunderx: Fix for Qset error due to CQ full'
      ====================
      
      Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
      ebc363f5