|
@@ -105,9 +105,10 @@ static void eeh_report_error(struct pci_dev *dev, void *userdata)
|
|
|
return;
|
|
|
|
|
|
rc = driver->err_handler->error_detected (dev, pci_channel_io_frozen);
|
|
|
+
|
|
|
+ /* A driver that needs a reset trumps all others */
|
|
|
+ if (rc == PCI_ERS_RESULT_NEED_RESET) *res = rc;
|
|
|
if (*res == PCI_ERS_RESULT_NONE) *res = rc;
|
|
|
- if (*res == PCI_ERS_RESULT_DISCONNECT &&
|
|
|
- rc == PCI_ERS_RESULT_NEED_RESET) *res = rc;
|
|
|
}
|
|
|
|
|
|
/**
|
|
@@ -129,9 +130,10 @@ static void eeh_report_mmio_enabled(struct pci_dev *dev, void *userdata)
|
|
|
return;
|
|
|
|
|
|
rc = driver->err_handler->mmio_enabled (dev);
|
|
|
+
|
|
|
+ /* A driver that needs a reset trumps all others */
|
|
|
+ if (rc == PCI_ERS_RESULT_NEED_RESET) *res = rc;
|
|
|
if (*res == PCI_ERS_RESULT_NONE) *res = rc;
|
|
|
- if (*res == PCI_ERS_RESULT_DISCONNECT &&
|
|
|
- rc == PCI_ERS_RESULT_NEED_RESET) *res = rc;
|
|
|
}
|
|
|
|
|
|
/**
|