PCI/AER: Add uevents in AER and EEH error/resume
Devices can go offline when erors reported. This patch adds a change to the kernel object and lets udev know of error. When device resumes, a change is also set reporting device as online. Therefore, EEH and AER events are better propagated to user space for PCI devices in all arches. Signed-off-by: Bryant G. Ly <bryantly@linux.vnet.ibm.com> Signed-off-by: Juan J. Alvarez <jjalvare@linux.vnet.ibm.com> Acked-by: Bjorn Helgaas <bhelgaas@google.com> Acked-by: Russell Currey <ruscur@russell.cc> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
This commit is contained in:

committed by
Michael Ellerman

parent
64ba3dc7bf
commit
856e1eb9bd
@@ -228,6 +228,7 @@ static void *eeh_report_error(void *data, void *userdata)
|
||||
|
||||
edev->in_error = true;
|
||||
eeh_pcid_put(dev);
|
||||
pci_uevent_ers(dev, PCI_ERS_RESULT_NONE);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -381,6 +382,10 @@ static void *eeh_report_resume(void *data, void *userdata)
|
||||
driver->err_handler->resume(dev);
|
||||
|
||||
eeh_pcid_put(dev);
|
||||
pci_uevent_ers(dev, PCI_ERS_RESULT_RECOVERED);
|
||||
#ifdef CONFIG_PCI_IOV
|
||||
eeh_ops->notify_resume(eeh_dev_to_pdn(edev));
|
||||
#endif
|
||||
return NULL;
|
||||
}
|
||||
|
||||
@@ -416,6 +421,7 @@ static void *eeh_report_failure(void *data, void *userdata)
|
||||
driver->err_handler->error_detected(dev, pci_channel_io_perm_failure);
|
||||
|
||||
eeh_pcid_put(dev);
|
||||
pci_uevent_ers(dev, PCI_ERS_RESULT_DISCONNECT);
|
||||
return NULL;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user