On 2019/07/17 17:56, Firo Yang wrote: > I don't think this change could fix this problem because if SMP, > dev_watchdog() could run on a different CPU.
hmm, SMP is clearly part of the picture here. The change I proposed
revolves around the synchronization offered by dev->tx_global_lock:
we have
\ dev_watchdog
\ netif_tx_lock
spin_lock(&dev->tx_global_lock);
...
\ netif_tx_unlock
and
\ be_update_queues
\ netif_tx_lock_bh
\ netif_tx_lock
spin_lock(&dev->tx_global_lock);
Makes sense?
