bnxt_en: refactor reset close code
Introduce bnxt_fw_fatal_close() API which can be used to stop data path and disable device when firmware is in fatal state. 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>
This commit is contained in:
parent
4fd1edcdf1
commit
7474b1c82b
|
@ -13037,6 +13037,16 @@ static void bnxt_rx_ring_reset(struct bnxt *bp)
|
||||||
bnxt_rtnl_unlock_sp(bp);
|
bnxt_rtnl_unlock_sp(bp);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void bnxt_fw_fatal_close(struct bnxt *bp)
|
||||||
|
{
|
||||||
|
bnxt_tx_disable(bp);
|
||||||
|
bnxt_disable_napi(bp);
|
||||||
|
bnxt_disable_int_sync(bp);
|
||||||
|
bnxt_free_irq(bp);
|
||||||
|
bnxt_clear_int_mode(bp);
|
||||||
|
pci_disable_device(bp->pdev);
|
||||||
|
}
|
||||||
|
|
||||||
static void bnxt_fw_reset_close(struct bnxt *bp)
|
static void bnxt_fw_reset_close(struct bnxt *bp)
|
||||||
{
|
{
|
||||||
bnxt_ulp_stop(bp);
|
bnxt_ulp_stop(bp);
|
||||||
|
@ -13050,12 +13060,7 @@ static void bnxt_fw_reset_close(struct bnxt *bp)
|
||||||
pci_read_config_word(bp->pdev, PCI_SUBSYSTEM_ID, &val);
|
pci_read_config_word(bp->pdev, PCI_SUBSYSTEM_ID, &val);
|
||||||
if (val == 0xffff)
|
if (val == 0xffff)
|
||||||
bp->fw_reset_min_dsecs = 0;
|
bp->fw_reset_min_dsecs = 0;
|
||||||
bnxt_tx_disable(bp);
|
bnxt_fw_fatal_close(bp);
|
||||||
bnxt_disable_napi(bp);
|
|
||||||
bnxt_disable_int_sync(bp);
|
|
||||||
bnxt_free_irq(bp);
|
|
||||||
bnxt_clear_int_mode(bp);
|
|
||||||
pci_disable_device(bp->pdev);
|
|
||||||
}
|
}
|
||||||
__bnxt_close_nic(bp, true, false);
|
__bnxt_close_nic(bp, true, false);
|
||||||
bnxt_vf_reps_free(bp);
|
bnxt_vf_reps_free(bp);
|
||||||
|
|
Loading…
Reference in New Issue