1. 11 12月, 2016 1 次提交
    • L
      net: ethernet: stmmac: remove private tx queue lock · 739c8e14
      Lino Sanfilippo 提交于
      The driver uses a private lock for synchronization of the xmit function and
      the xmit completion handler, but since the NETIF_F_LLTX flag is not set,
      the xmit function is also called with the xmit_lock held.
      
      On the other hand the completion handler uses the reverse locking order by
      first taking the private lock and (in case that the tx queue had been
      stopped) then the xmit_lock.
      
      Improve the locking by removing the private lock and using only the
      xmit_lock for synchronization instead.
      Signed-off-by: NLino Sanfilippo <LinoSanfilippo@gmx.de>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      739c8e14
  2. 09 12月, 2016 8 次提交
  3. 08 12月, 2016 1 次提交
    • N
      net: stmmac: do not call phy_ethtool_ksettings_set from atomic context · 90364fea
      Niklas Cassel 提交于
      >From what I can tell, spin_lock(&priv->lock) is not needed, since the
      phy_ethtool_ksettings_set call is not given the priv struct.
      
      phy_start_aneg takes the phydev->lock. Calls to phy_adjust_link
      from phy_state_machine also takes the phydev->lock.
      
      [   13.718319] BUG: sleeping function called from invalid context at kernel/locking/mutex.c:97
      [   13.726717] in_atomic(): 1, irqs_disabled(): 0, pid: 1307, name: ethtool
      [   13.742115] Hardware name: Axis ARTPEC-6 Platform
      [   13.746829] [<80110568>] (unwind_backtrace) from [<8010c2bc>] (show_stack+0x18/0x1c)
      [   13.754575] [<8010c2bc>] (show_stack) from [<80433484>] (dump_stack+0x80/0xa0)
      [   13.761801] [<80433484>] (dump_stack) from [<80145428>] (___might_sleep+0x108/0x170)
      [   13.769554] [<80145428>] (___might_sleep) from [<806c9b50>] (mutex_lock+0x24/0x44)
      [   13.777128] [<806c9b50>] (mutex_lock) from [<8050cbc0>] (phy_start_aneg+0x1c/0x13c)
      [   13.784783] [<8050cbc0>] (phy_start_aneg) from [<8050d338>] (phy_ethtool_ksettings_set+0x98/0xd0)
      [   13.793656] [<8050d338>] (phy_ethtool_ksettings_set) from [<80517adc>] (stmmac_ethtool_set_link_ksettings+0xa0/0xb4)
      [   13.804184] [<80517adc>] (stmmac_ethtool_set_link_ksettings) from [<805c5138>] (ethtool_set_settings+0xd4/0x13c)
      [   13.814358] [<805c5138>] (ethtool_set_settings) from [<805c9718>] (dev_ethtool+0x13c4/0x211c)
      [   13.822882] [<805c9718>] (dev_ethtool) from [<805dc7c0>] (dev_ioctl+0x480/0x8e0)
      [   13.830291] [<805dc7c0>] (dev_ioctl) from [<80260e34>] (do_vfs_ioctl+0x94/0xa00)
      [   13.837699] [<80260e34>] (do_vfs_ioctl) from [<802617dc>] (SyS_ioctl+0x3c/0x60)
      [   13.845011] [<802617dc>] (SyS_ioctl) from [<801088bc>] (__sys_trace_return+0x0/0x10)
      Signed-off-by: NNiklas Cassel <niklas.cassel@axis.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      90364fea
  4. 06 12月, 2016 1 次提交
  5. 04 12月, 2016 2 次提交
  6. 02 12月, 2016 7 次提交
  7. 30 11月, 2016 2 次提交
  8. 22 11月, 2016 1 次提交
  9. 18 11月, 2016 3 次提交
  10. 17 11月, 2016 1 次提交
  11. 16 11月, 2016 5 次提交
  12. 15 11月, 2016 1 次提交
    • F
      net: stmmac: Fix lack of link transition for fixed PHYs · c51e424d
      Florian Fainelli 提交于
      Commit 52f95bbf ("stmmac: fix adjust link call in case of a switch
      is attached") added some logic to avoid polling the fixed PHY and
      therefore invoking the adjust_link callback more than once, since this
      is a fixed PHY and link events won't be generated.
      
      This works fine the first time, because we start with phydev->irq =
      PHY_POLL, so we call adjust_link, then we set phydev->irq =
      PHY_IGNORE_INTERRUPT and we stop polling the PHY.
      
      Now, if we called ndo_close(), which calls both phy_stop() and does an
      explicit netif_carrier_off(), we end up with a link down. Upon calling
      ndo_open() again, despite starting the PHY state machine, we have
      PHY_IGNORE_INTERRUPT set, and we generate no link event at all, so the
      link is permanently down.
      
      Fixes: 52f95bbf ("stmmac: fix adjust link call in case of a switch is attached")
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Acked-by: NGiuseppe Cavallaro <peppe.cavallaro@st.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      c51e424d
  13. 10 11月, 2016 4 次提交
  14. 07 11月, 2016 3 次提交