diff options
author | Michael Chan <michael.chan@broadcom.com> | 2019-05-22 19:12:55 -0400 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-05-22 18:02:14 -0700 |
commit | 1b3f0b75c39f534278a895c117282014e9d0ae1f (patch) | |
tree | 2d8e8f458df5991691dbe8ca5c1fe1ceffbdbcf4 /drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | |
parent | 296d5b54163964b7ae536b8b57dfbd21d4e868e1 (diff) | |
download | linux-1b3f0b75c39f534278a895c117282014e9d0ae1f.tar.gz linux-1b3f0b75c39f534278a895c117282014e9d0ae1f.tar.bz2 linux-1b3f0b75c39f534278a895c117282014e9d0ae1f.zip |
bnxt_en: Fix possible BUG() condition when calling pci_disable_msix().
When making configuration changes, the driver calls bnxt_close_nic()
and then bnxt_open_nic() for the changes to take effect. A parameter
irq_re_init is passed to the call sequence to indicate if IRQ
should be re-initialized. This irq_re_init parameter needs to
be included in the bnxt_reserve_rings() call. bnxt_reserve_rings()
can only call pci_disable_msix() if the irq_re_init parameter is
true, otherwise it may hit BUG() because some IRQs may not have been
freed yet.
Fixes: 41e8d7983752 ("bnxt_en: Modify the ring reservation functions for 57500 series chips.")
Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c index cf475873ce81..bfa342a98d08 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ulp.c @@ -147,7 +147,7 @@ static int bnxt_req_msix_vecs(struct bnxt_en_dev *edev, int ulp_id, bnxt_close_nic(bp, true, false); rc = bnxt_open_nic(bp, true, false); } else { - rc = bnxt_reserve_rings(bp); + rc = bnxt_reserve_rings(bp, true); } } if (rc) { |