]> www.infradead.org Git - users/dwmw2/linux.git/commitdiff
bnxt_en: Refactor logic to re-enable SRIOV after firmware reset detected.
authorMichael Chan <michael.chan@broadcom.com>
Sun, 2 Feb 2020 07:41:35 +0000 (02:41 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 11 Feb 2020 12:36:37 +0000 (04:36 -0800)
[ Upstream commit c16d4ee0e397163fe7ceac281eaa952e63fadec7 ]

Put the current logic in bnxt_open() to re-enable SRIOV after detecting
firmware reset into a new function bnxt_reenable_sriov().  This call
needs to be invoked in the firmware reset path also in the next patch.

Signed-off-by: Michael Chan <michael.chan@broadcom.com>
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/net/ethernet/broadcom/bnxt/bnxt.c

index 0625357d3152d44028cf14c111c554251a30d5fa..6c5825475a73ed9b29e09e56afbd4626d38738d3 100644 (file)
@@ -9240,6 +9240,17 @@ void bnxt_half_close_nic(struct bnxt *bp)
        bnxt_free_mem(bp, false);
 }
 
+static void bnxt_reenable_sriov(struct bnxt *bp)
+{
+       if (BNXT_PF(bp)) {
+               struct bnxt_pf_info *pf = &bp->pf;
+               int n = pf->active_vfs;
+
+               if (n)
+                       bnxt_cfg_hw_sriov(bp, &n, true);
+       }
+}
+
 static int bnxt_open(struct net_device *dev)
 {
        struct bnxt *bp = netdev_priv(dev);
@@ -9258,13 +9269,7 @@ static int bnxt_open(struct net_device *dev)
                bnxt_hwrm_if_change(bp, false);
        } else {
                if (test_and_clear_bit(BNXT_STATE_FW_RESET_DET, &bp->state)) {
-                       if (BNXT_PF(bp)) {
-                               struct bnxt_pf_info *pf = &bp->pf;
-                               int n = pf->active_vfs;
-
-                               if (n)
-                                       bnxt_cfg_hw_sriov(bp, &n, true);
-                       }
+                       bnxt_reenable_sriov(bp);
                        if (!test_bit(BNXT_STATE_IN_FW_RESET, &bp->state))
                                bnxt_ulp_start(bp, 0);
                }