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?

Reply via email to