]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
ixgbevf: restore hw_addr on resume or error
authorEmil Tantilov <emil.s.tantilov@intel.com>
Wed, 23 Nov 2016 19:24:08 +0000 (11:24 -0800)
committerJack Vogel <jack.vogel@oracle.com>
Fri, 16 Jun 2017 06:01:23 +0000 (23:01 -0700)
Restore adapter->hw.hw_addr after handling an error, or a resume
operation to make sure we can access the registers.

Signed-off-by: Emil Tantilov <emil.s.tantilov@intel.com>
Tested-by: Andrew Bowers <andrewx.bowers@intel.com>
Signed-off-by: Jeff Kirsher <jeffrey.t.kirsher@intel.com>
Orabug: 26242766
(cherry picked from commit 26403b7fde65ecfc74f5571e3cfa602dc9b3d6cb)
Signed-off-by: Jack Vogel <jack.vogel@oracle.com>
Reviewed-by: Ethan Zhao <ethan.zhao@oracle.com>
drivers/net/ethernet/intel/ixgbevf/ixgbevf_main.c

index e6766cf74bf0da4d9af325e2290053fa86ff4332..721952b7aa53a28ffba763f2a81371a12c71386c 100644 (file)
@@ -3870,6 +3870,8 @@ static int ixgbevf_resume(struct pci_dev *pdev)
                dev_err(&pdev->dev, "Cannot enable PCI device from suspend\n");
                return err;
        }
+
+       adapter->hw.hw_addr = adapter->io_addr;
        smp_mb__before_atomic();
        clear_bit(__IXGBEVF_DISABLED, &adapter->state);
        pci_set_master(pdev);
@@ -4242,6 +4244,7 @@ static pci_ers_result_t ixgbevf_io_slot_reset(struct pci_dev *pdev)
                return PCI_ERS_RESULT_DISCONNECT;
        }
 
+       adapter->hw.hw_addr = adapter->io_addr;
        smp_mb__before_atomic();
        clear_bit(__IXGBEVF_DISABLED, &adapter->state);
        pci_set_master(pdev);