mirror of https://gitee.com/openkylin/linux.git
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: Michael Chan <michael.chan@broadcom.com> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
894aa69a90
commit
86e953db01
|
@ -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)
|
||||||
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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue