1. 21 5月, 2018 3 次提交
  2. 17 5月, 2018 1 次提交
  3. 15 5月, 2018 3 次提交
  4. 12 5月, 2018 3 次提交
  5. 11 5月, 2018 4 次提交
  6. 08 5月, 2018 1 次提交
  7. 30 4月, 2018 3 次提交
  8. 28 4月, 2018 1 次提交
  9. 27 4月, 2018 3 次提交
  10. 13 4月, 2018 1 次提交
    • R
      net: dsa: mv88e6xxx: Fix receive time stamp race condition. · 22904823
      Richard Cochran 提交于
      The DSA stack passes received PTP frames to this driver via
      mv88e6xxx_port_rxtstamp() for deferred delivery.  The driver then
      queues the frame and kicks the worker thread.  The work callback reads
      out the latched receive time stamp and then works through the queue,
      delivering any non-matching frames without a time stamp.
      
      If a new frame arrives after the worker thread has read out the time
      stamp register but enters the queue before the worker finishes
      processing the queue, that frame will be delivered without a time
      stamp.
      
      This patch fixes the race by moving the queue onto a list on the stack
      before reading out the latched time stamp value.
      
      Fixes: c6fe0ad2 ("net: dsa: mv88e6xxx: add rx/tx timestamping support")
      Signed-off-by: NRichard Cochran <richardcochran@gmail.com>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      22904823
  11. 04 4月, 2018 2 次提交
  12. 30 3月, 2018 2 次提交
  13. 27 3月, 2018 2 次提交
  14. 26 3月, 2018 2 次提交
  15. 23 3月, 2018 1 次提交
  16. 21 3月, 2018 3 次提交
  17. 19 3月, 2018 4 次提交
    • A
      net: dsa: mv88e6xxx: Add MDIO interrupts for internal PHYs · 6f88284f
      Andrew Lunn 提交于
      When registering an MDIO bus, it is possible to pass an array of
      interrupts, one per address on the bus. phylib will then associate the
      interrupt to the PHY device, if no other interrupt is provided.
      
      Some of the global2 interrupts are PHY interrupts. Place them into the
      MDIO bus structure.
      Signed-off-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      6f88284f
    • A
      net: dsa: mv88e6xxx: Add number of internal PHYs · bc393155
      Andrew Lunn 提交于
      Add to the info structure the number of internal PHYs, if they generate
      interrupts. Some of the older generations of switches have internal
      PHYs, but no interrupt registers. In this case, set the count to zero.
      Signed-off-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      bc393155
    • A
      net: dsa: mv88e6xxx: Add missing g1 IRQ numbers · adfccf11
      Andrew Lunn 提交于
      With the recent change to polling for interrupts, it is important that
      the number of global 1 interrupts is listed. Without it, the driver
      requests an interrupt domain for zero interrupts, which returns
      EINVAL, and the probe fails.
      
      Add two missing entries.
      Signed-off-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      adfccf11
    • F
      net: dsa: mv88e6xxx: Fix missing register lock in serdes_get_stats · ef44d78d
      Florian Fainelli 提交于
      We can hit the register lock not held assertion with the following path:
      
      [   34.170631] mv88e6085 0.1:00: Switch registers lock not held!
      [   34.176510] CPU: 0 PID: 950 Comm: ethtool Not tainted 4.16.0-rc4 #143
      [   34.182985] Hardware name: Freescale Vybrid VF5xx/VF6xx (Device Tree)
      [   34.189519] Backtrace:
      [   34.192033] [<8010c4b4>] (dump_backtrace) from [<8010c788>] (show_stack+0x20/0x24)
      [   34.199680]  r6:9f5dc010 r5:00000011 r4:9f5dc010 r3:00000000
      [   34.205434] [<8010c768>] (show_stack) from [<80679d38>] (dump_stack+0x24/0x28)
      [   34.212719] [<80679d14>] (dump_stack) from [<804844a8>] (mv88e6xxx_read+0x70/0x7c)
      [   34.220376] [<80484438>] (mv88e6xxx_read) from [<804870dc>] (mv88e6xxx_port_get_cmode+0x34/0x4c)
      [   34.229257]  r5:a09cd128 r4:9ee31d07
      [   34.232880] [<804870a8>] (mv88e6xxx_port_get_cmode) from [<80487e6c>] (mv88e6352_port_has_serdes+0x24/0x64)
      [   34.242690]  r4:9f5dc010
      [   34.245309] [<80487e48>] (mv88e6352_port_has_serdes) from [<804880b8>] (mv88e6352_serdes_get_stats+0x28/0x12c)
      [   34.255389]  r4:00000001
      [   34.257973] [<80488090>] (mv88e6352_serdes_get_stats) from [<804811e8>] (mv88e6xxx_get_ethtool_stats+0xb0/0xc0)
      [   34.268156]  r10:00000000 r9:00000000 r8:00000000 r7:a09cd020 r6:00000001 r5:9f5dc01c
      [   34.276052]  r4:9f5dc010
      [   34.278631] [<80481138>] (mv88e6xxx_get_ethtool_stats) from [<8064f740>] (dsa_slave_get_ethtool_stats+0xbc/0xc4)
      
      mv88e6xxx_get_ethtool_stats() calls mv88e6xxx_get_stats() which calls both
      chip->info->ops->stats_get_stats(), which holds the register lock, and
      chip->info->ops->serdes_get_stats() which does not. Have
      chip->info->ops->serdes_get_stats() be running with the register lock held to
      avoid such assertions.
      
      Fixes: 436fe17d ("net: dsa: mv88e6xxx: Allow the SERDES interfaces to have statistics")
      Signed-off-by: NFlorian Fainelli <f.fainelli@gmail.com>
      Reviewed-by: NAndrew Lunn <andrew@lunn.ch>
      Signed-off-by: NDavid S. Miller <davem@davemloft.net>
      ef44d78d
  18. 18 3月, 2018 1 次提交