Commit 86e953db authored by Michael Chan's avatar Michael Chan Committed by David S. Miller

bnxt_en: Refactor bnxt_close_nic().

Add a new __bnxt_close_nic() function to do all the work previously done
in bnxt_close_nic() except waiting for SRIOV configuration.  The new
function will be used in the next patch as part of SRIOV cleanup.
Signed-off-by: default avatarMichael Chan <michael.chan@broadcom.com>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 894aa69a
...@@ -6512,23 +6512,13 @@ static bool bnxt_drv_busy(struct bnxt *bp) ...@@ -6512,23 +6512,13 @@ static bool bnxt_drv_busy(struct bnxt *bp)
test_bit(BNXT_STATE_READ_STATS, &bp->state)); test_bit(BNXT_STATE_READ_STATS, &bp->state));
} }
int bnxt_close_nic(struct bnxt *bp, bool irq_re_init, bool link_re_init) static void __bnxt_close_nic(struct bnxt *bp, bool irq_re_init,
bool link_re_init)
{ {
int rc = 0;
#ifdef CONFIG_BNXT_SRIOV
if (bp->sriov_cfg) {
rc = wait_event_interruptible_timeout(bp->sriov_cfg_wait,
!bp->sriov_cfg,
BNXT_SRIOV_CFG_WAIT_TMO);
if (rc)
netdev_warn(bp->dev, "timeout waiting for SRIOV config operation to complete!\n");
}
/* Close the VF-reps before closing PF */ /* Close the VF-reps before closing PF */
if (BNXT_PF(bp)) if (BNXT_PF(bp))
bnxt_vf_reps_close(bp); bnxt_vf_reps_close(bp);
#endif
/* Change device state to avoid TX queue wake up's */ /* Change device state to avoid TX queue wake up's */
bnxt_tx_disable(bp); bnxt_tx_disable(bp);
...@@ -6551,6 +6541,22 @@ int bnxt_close_nic(struct bnxt *bp, bool irq_re_init, bool link_re_init) ...@@ -6551,6 +6541,22 @@ int bnxt_close_nic(struct bnxt *bp, bool irq_re_init, bool link_re_init)
bnxt_del_napi(bp); bnxt_del_napi(bp);
} }
bnxt_free_mem(bp, irq_re_init); bnxt_free_mem(bp, irq_re_init);
}
int bnxt_close_nic(struct bnxt *bp, bool irq_re_init, bool link_re_init)
{
int rc = 0;
#ifdef CONFIG_BNXT_SRIOV
if (bp->sriov_cfg) {
rc = wait_event_interruptible_timeout(bp->sriov_cfg_wait,
!bp->sriov_cfg,
BNXT_SRIOV_CFG_WAIT_TMO);
if (rc)
netdev_warn(bp->dev, "timeout waiting for SRIOV config operation to complete!\n");
}
#endif
__bnxt_close_nic(bp, irq_re_init, link_re_init);
return rc; return rc;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment