On Tue, 13 Apr 2021 11:48:17 +0800 Yangbo Lu wrote: > + /* Queue one-step Sync packet if already locked */ > + if (skb->cb[0] & ENETC_F_TX_ONESTEP_SYNC_TSTAMP) { > + if (test_and_set_bit_lock(ENETC_TX_ONESTEP_TSTAMP_IN_PROGRESS, > + &priv->flags)) { > + skb_queue_tail(&priv->tx_skbs, skb); > + return NETDEV_TX_OK; > + } > + }
Isn't this missing queue_work() as well? Also as I mentioned I don't understand why you created a separate workqueue instead of using the system workqueue via schedule_work().