|
@@ -12045,6 +12045,28 @@ static pci_ers_result_t i40e_pci_error_slot_reset(struct pci_dev *pdev)
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+/**
|
|
|
+ * i40e_pci_error_reset_prepare - prepare device driver for pci reset
|
|
|
+ * @pdev: PCI device information struct
|
|
|
+ */
|
|
|
+static void i40e_pci_error_reset_prepare(struct pci_dev *pdev)
|
|
|
+{
|
|
|
+ struct i40e_pf *pf = pci_get_drvdata(pdev);
|
|
|
+
|
|
|
+ i40e_prep_for_reset(pf, false);
|
|
|
+}
|
|
|
+
|
|
|
+/**
|
|
|
+ * i40e_pci_error_reset_done - pci reset done, device driver reset can begin
|
|
|
+ * @pdev: PCI device information struct
|
|
|
+ */
|
|
|
+static void i40e_pci_error_reset_done(struct pci_dev *pdev)
|
|
|
+{
|
|
|
+ struct i40e_pf *pf = pci_get_drvdata(pdev);
|
|
|
+
|
|
|
+ i40e_reset_and_rebuild(pf, false, false);
|
|
|
+}
|
|
|
+
|
|
|
/**
|
|
|
* i40e_pci_error_resume - restart operations after PCI error recovery
|
|
|
* @pdev: PCI device information struct
|
|
@@ -12235,6 +12257,8 @@ static int i40e_resume(struct device *dev)
|
|
|
static const struct pci_error_handlers i40e_err_handler = {
|
|
|
.error_detected = i40e_pci_error_detected,
|
|
|
.slot_reset = i40e_pci_error_slot_reset,
|
|
|
+ .reset_prepare = i40e_pci_error_reset_prepare,
|
|
|
+ .reset_done = i40e_pci_error_reset_done,
|
|
|
.resume = i40e_pci_error_resume,
|
|
|
};
|
|
|
|