• Vladimir Oltean's avatar
    net: dsa: sja1105: Disallow management xmit during switch reset · af580ae2
    Vladimir Oltean authored
    The purpose here is to avoid ptp4l fail due to this condition:
    
      timed out while polling for tx timestamp
      increasing tx_timestamp_timeout may correct this issue, but it is likely caused by a driver bug
      port 1: send peer delay request failed
    
    So either reset the switch before the management frame was sent, or
    after it was timestamped as well, but not in the middle.
    
    The condition may arise either due to a true timeout (i.e. because
    re-uploading the static config takes time), or due to the TX timestamp
    actually getting lost due to reset. For the former we can increase
    tx_timestamp_timeout in userspace, for the latter we need this patch.
    
    Locking all traffic during switch reset does not make sense at all,
    though. Forcing all CPU-originated traffic to potentially block waiting
    for a sleepable context to send > 800 bytes over SPI is not a good idea.
    Flows that are autonomously forwarded by the switch will get dropped
    anyway during switch reset no matter what. So just let all other
    CPU-originated traffic be dropped as well.
    Signed-off-by: default avatarVladimir Oltean <olteanv@gmail.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    af580ae2
sja1105_main.c 61.2 KB