bnxt_en: Fix MSIX request logic for RDMA driver.
authorMichael Chan <michael.chan@broadcom.com>
Tue, 10 Dec 2019 07:49:07 +0000 (02:49 -0500)
committerDavid S. Miller <davem@davemloft.net>
Wed, 11 Dec 2019 01:37:14 +0000 (17:37 -0800)
commit0c722ec0a289c7f6b53f89bad1cfb7c4db3f7a62
tree1e8735afdd3b4aacb0cc141402378b7b5f427d4b
parent868afbaca1e2a7923e48b5e8c07be34660525db5
bnxt_en: Fix MSIX request logic for RDMA driver.

The logic needs to check both bp->total_irqs and the reserved IRQs in
hw_resc->resv_irqs if applicable and see if both are enough to cover
the L2 and RDMA requested vectors.  The current code is only checking
bp->total_irqs and can fail in some code paths, such as the TX timeout
code path with the RDMA driver requesting vectors after recovery.  In
this code path, we have not reserved enough MSIX resources for the
RDMA driver yet.

Fixes: 75720e6323a1 ("bnxt_en: Keep track of reserved IRQs.")
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