On Wed, 2 Oct 2024 11:59:53 -0500 Wei Huang wrote: > + if (netif_running(irq->bp->dev)) { > + rtnl_lock(); > + err = netdev_rx_queue_restart(irq->bp->dev, irq->ring_nr); > + if (err) > + netdev_err(irq->bp->dev, > + "rx queue restart failed: err=%d\n", err); > + rtnl_unlock(); > + } > +} > + > +static void __bnxt_irq_affinity_release(struct kref __always_unused *ref) > +{ > +} An empty release function is always a red flag. How is the reference counting used here? Is irq_set_affinity_notifier() not synchronous? Otherwise the rtnl_lock() should probably cover the running check.