mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-05-02 14:34:13 -04:00
Merge branch 'pci/aer'
- Remove unnecessary <linux/aer.h> includes (Bjorn Helgaas) - Clear Device Status after EDR error recovery. Firmware collects EDR error information, but the OS is responsible for clearing it (Kuppuswamy Sathyanarayanan) * pci/aer: PCI/EDR: Add edr_handle_event() comments PCI/EDR: Clear Device Status after EDR error recovery efi/cper: Remove unnecessary aer.h include
This commit is contained in:
@@ -12,7 +12,6 @@
|
||||
#include <linux/dmi.h>
|
||||
#include <linux/acpi.h>
|
||||
#include <linux/pci.h>
|
||||
#include <linux/aer.h>
|
||||
#include <linux/printk.h>
|
||||
#include <linux/bcd.h>
|
||||
#include <acpi/ghes.h>
|
||||
|
||||
@@ -151,9 +151,18 @@ static void edr_handle_event(acpi_handle handle, u32 event, void *data)
|
||||
if (event != ACPI_NOTIFY_DISCONNECT_RECOVER)
|
||||
return;
|
||||
|
||||
/*
|
||||
* pdev is a Root Port or Downstream Port that is still present and
|
||||
* has triggered a containment event, e.g., DPC, so its child
|
||||
* devices have been disconnected (ACPI r6.5, sec 5.6.6).
|
||||
*/
|
||||
pci_info(pdev, "EDR event received\n");
|
||||
|
||||
/* Locate the port which issued EDR event */
|
||||
/*
|
||||
* Locate the port that experienced the containment event. pdev
|
||||
* may be that port or a parent of it (PCI Firmware r3.3, sec
|
||||
* 4.6.13).
|
||||
*/
|
||||
edev = acpi_dpc_port_get(pdev);
|
||||
if (!edev) {
|
||||
pci_err(pdev, "Firmware failed to locate DPC port\n");
|
||||
@@ -193,6 +202,7 @@ static void edr_handle_event(acpi_handle handle, u32 event, void *data)
|
||||
*/
|
||||
if (estate == PCI_ERS_RESULT_RECOVERED) {
|
||||
pci_dbg(edev, "DPC port successfully recovered\n");
|
||||
pcie_clear_device_status(edev);
|
||||
acpi_send_edr_status(pdev, edev, EDR_OST_SUCCESS);
|
||||
} else {
|
||||
pci_dbg(edev, "DPC port recovery failed\n");
|
||||
|
||||
Reference in New Issue
Block a user