Re: [PATCH net 4/4] eth: bnxt: avoid deadlock when canceling IRQ affinity notifier

Michael Chan <[email protected]>
Newsgroups org.kernel.vger.netdev
Message-ID <CACKFLin+Gi8t=5spT6dPrByN2NqS8XFUp+kU_+YZ89t0Qu3Qtg@mail.gmail.com>
On Mon, Aug 3, 2026 at 12:31 PM Jakub Kicinski <[email protected]> wrote:
>
> Unregistering IRQ affinity notifiers waits for the callback synchronously.
> bnxt takes the netdev instance lock in the notifier (to restart the queue)
> and cancels the work under the same lock. This may obviously deadlock.
>
> Move the restart to the async service task. The queue restart isn't
> super time sensitive. Store the new TPH tag, schedule the task.
> Safely canceling the service task is already ironed out.
>
> In bnxt_request_irq() the order of registering notifier, affinity and
> initial TPH programming has to be inverted. I think it was racy
> previously since user may trigger an update as soon as notifier
> is installed.
>
> There's a small known gap - if pcie_tph_get_cpu_st() fails at init
> and the target tag is 0 we may miss programming the entry.
> This does not seem worth fixing, the code has skip-on-failure
> all over the place, anyway.
>
> Fixes: c214410c47d6 ("bnxt_en: Add TPH support in BNXT driver")
> Signed-off-by: Jakub Kicinski <[email protected]>

Thanks for the patches.  We'll get the patches tested in our lab.
smime.p7s (application/pkcs7-signature, 5.3 KB) - not displayed
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.