diff options
author | Michael Chan <michael.chan@broadcom.com> | 2019-05-23 02:12:55 +0300 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2019-05-23 04:02:14 +0300 |
commit | 1b3f0b75c39f534278a895c117282014e9d0ae1f (patch) | |
tree | 2d8e8f458df5991691dbe8ca5c1fe1ceffbdbcf4 /drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | |
parent | 296d5b54163964b7ae536b8b57dfbd21d4e868e1 (diff) | |
download | linux-1b3f0b75c39f534278a895c117282014e9d0ae1f.tar.xz |
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_ethtool.c')
-rw-r--r-- | drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c index b1263821a6e9..a6c7baf38036 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt_ethtool.c @@ -831,7 +831,7 @@ static int bnxt_set_channels(struct net_device *dev, */ } } else { - rc = bnxt_reserve_rings(bp); + rc = bnxt_reserve_rings(bp, true); } return rc; |