From: Michael Chan Date: Wed, 17 Jan 2018 08:21:04 +0000 (-0500) Subject: bnxt_en: Refactor bnxt_close_nic(). X-Git-Tag: v4.1.12-124.31.3~927 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=d108f8b4fce4c76b00a0cb4f8f54749e6d306dfb;p=users%2Fjedix%2Flinux-maple.git bnxt_en: Refactor bnxt_close_nic(). Orabug: 27648355, 27648339 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 Signed-off-by: David S. Miller (cherry picked from commit 86e953db0114f396f916344395160aa267bf2627) Signed-off-by: Brian Maly Reviewed-by: Jack Vogel Conflicts: drivers/net/ethernet/broadcom/bnxt/bnxt.c --- diff --git a/drivers/net/ethernet/broadcom/bnxt/bnxt.c b/drivers/net/ethernet/broadcom/bnxt/bnxt.c index e08f54c59749..bcf581917a22 100644 --- a/drivers/net/ethernet/broadcom/bnxt/bnxt.c +++ b/drivers/net/ethernet/broadcom/bnxt/bnxt.c @@ -6413,19 +6413,11 @@ static int bnxt_open(struct net_device *dev) return __bnxt_open_nic(bp, true, true); } -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 + +static void __bnxt_close_nic(struct bnxt *bp, bool irq_re_init, + bool link_re_init) +{ /* Change device state to avoid TX queue wake up's */ bnxt_tx_disable(bp); @@ -6448,6 +6440,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; }