Thanks Manoj -----Original Message----- From: Jakub Kicinski <kuba@xxxxxxxxxx> Sent: Tuesday, October 8, 2024 6:40 AM To: Huang2, Wei <Wei.Huang2@xxxxxxx> Cc: linux-pci@xxxxxxxxxxxxxxx; linux-kernel@xxxxxxxxxxxxxxx; linux-doc@xxxxxxxxxxxxxxx; netdev@xxxxxxxxxxxxxxx; Jonathan.Cameron@xxxxxxxxxx; helgaas@xxxxxxxxxx; corbet@xxxxxxx; davem@xxxxxxxxxxxxx; edumazet@xxxxxxxxxx; pabeni@xxxxxxxxxx; alex.williamson@xxxxxxxxxx; gospo@xxxxxxxxxxxx; michael.chan@xxxxxxxxxxxx; ajit.khaparde@xxxxxxxxxxxx; somnath.kotur@xxxxxxxxxxxx; andrew.gospodarek@xxxxxxxxxxxx; Panicker, Manoj <Manoj.Panicker2@xxxxxxx>; VanTassell, Eric <Eric.VanTassell@xxxxxxx>; vadim.fedorenko@xxxxxxxxx; horms@xxxxxxxxxx; bagasdotme@xxxxxxxxx; bhelgaas@xxxxxxxxxx; lukas@xxxxxxxxx; paul.e.luse@xxxxxxxxx; jing2.liu@xxxxxxxxx Subject: Re: [PATCH V7 4/5] bnxt_en: Add TPH support in BNXT driver Caution: This message originated from an External Source. Use proper caution when opening attachments, clicking links, or responding. 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.