i40e: Clear recovery pending, if reset failed
authorAkeem G Abodunrin <akeem.g.abodunrin@intel.com>
Wed, 9 Apr 2014 05:59:04 +0000 (05:59 +0000)
committerJeff Kirsher <jeffrey.t.kirsher@intel.com>
Thu, 29 May 2014 11:30:45 +0000 (04:30 -0700)
If pf_reset failed, it becomes necessary to clear recovery pending bit, instead
of falling through the setup process.

Change-ID: Ic1611e6a32741fe3a2782ec7be173cb65e7492ed
Signed-off-by: Akeem G Abodunrin <akeem.g.abodunrin@intel.com>
Tested-by: Jim Young <jamesx.m.young@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
drivers/net/ethernet/intel/i40e/i40e_main.c

index 239a2eaf61fc10fc39640adbe3da5ab9ba4156c5..cef3db44301ea512ca68cc03d8c7a7fcac35d34d 100644 (file)
@@ -5367,8 +5367,10 @@ static void i40e_reset_and_rebuild(struct i40e_pf *pf, bool reinit)
         * because the reset will make them disappear.
         */
        ret = i40e_pf_reset(hw);
-       if (ret)
+       if (ret) {
                dev_info(&pf->pdev->dev, "PF reset failed, %d\n", ret);
+               goto end_core_reset;
+       }
        pf->pfr_count++;
 
        if (test_bit(__I40E_DOWN, &pf->state))