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().