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.c...@broadcom.com>
---
 drivers/net/ethernet/broadcom/bnxt/bnxt.c | 32 ++++++++++++++++++-------------
 1 file changed, 19 insertions(+), 13 deletions(-)

diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c 
b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
index 3015d86..0833a53 100644
--- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c
+++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c
@@ -6512,23 +6512,13 @@ static bool bnxt_drv_busy(struct bnxt *bp)
                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 */
        if (BNXT_PF(bp))
                bnxt_vf_reps_close(bp);
-#endif
+
        /* Change device state to avoid TX queue wake up's */
        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_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;
 }
 
-- 
1.8.3.1

Reply via email to