|
@@ -146,6 +146,13 @@ static pci_ers_result_t pcie_portdrv_error_detected(struct pci_dev *dev,
|
|
|
return PCI_ERS_RESULT_CAN_RECOVER;
|
|
|
}
|
|
|
|
|
|
+static pci_ers_result_t pcie_portdrv_slot_reset(struct pci_dev *dev)
|
|
|
+{
|
|
|
+ pci_restore_state(dev);
|
|
|
+ pci_save_state(dev);
|
|
|
+ return PCI_ERS_RESULT_RECOVERED;
|
|
|
+}
|
|
|
+
|
|
|
static pci_ers_result_t pcie_portdrv_mmio_enabled(struct pci_dev *dev)
|
|
|
{
|
|
|
return PCI_ERS_RESULT_RECOVERED;
|
|
@@ -185,6 +192,7 @@ static const struct pci_device_id port_pci_ids[] = { {
|
|
|
|
|
|
static const struct pci_error_handlers pcie_portdrv_err_handler = {
|
|
|
.error_detected = pcie_portdrv_error_detected,
|
|
|
+ .slot_reset = pcie_portdrv_slot_reset,
|
|
|
.mmio_enabled = pcie_portdrv_mmio_enabled,
|
|
|
.resume = pcie_portdrv_err_resume,
|
|
|
};
|