bnxt_en: Fix error recovery for RoCE ulp client
authorVikas Gupta <vikas.gupta@broadcom.com>
Fri, 5 Apr 2024 23:55:12 +0000 (16:55 -0700)
committerDavid S. Miller <davem@davemloft.net>
Mon, 8 Apr 2024 12:55:47 +0000 (13:55 +0100)
Since runtime MSIXs vector allocation/free has been removed,
the L2 driver needs to repopulate the MSIX entries for the
ulp client as the irq table may change during the recovery
process.

Fixes: 303432211324 ("bnxt_en: Remove runtime interrupt vector allocation")
Reviewed-by: Andy Gospodarek <andrew.gospodarek@broadcom.com>
Signed-off-by: Vikas Gupta <vikas.gupta@broadcom.com>
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c

index a5f9c9090a6b0d04993c8d55962bce0250ced4e4..195c02dc0683054e03680abff45f3f42d9605192 100644 (file)
@@ -210,6 +210,9 @@ void bnxt_ulp_start(struct bnxt *bp, int err)
        if (err)
                return;
 
+       if (edev->ulp_tbl->msix_requested)
+               bnxt_fill_msix_vecs(bp, edev->msix_entries);
+
        if (aux_priv) {
                struct auxiliary_device *adev;