History

PCI/AER: Use only _OSC to determine AER ownership

Per the PCI Firmware spec, r3.2, sec 4.5.1, the OS can request control of AER via bit 3 of the _OSC Control Field. In the returned value of the Control Field: The firmware sets [bit 3] to 1 to grant control over PCI Express Advanced Error Reporting. ... after control is transferred to the operating system, firmware must not modify the Advanced Error Reporting Capability. If control of this feature was requested and denied or was not requested, firmware returns this bit set to 0. Previously the pci_root driver looked at the HEST FIRMWARE_FIRST bit to determine whether to request ownership of the AER Capability. This was based on ACPI spec v6.3, sec 18.3.2.4, and similar sections, which say things like: Bit [0] - FIRMWARE_FIRST: If set, indicates that system firmware will handle errors from this source first. Bit [1] - GLOBAL: If set, indicates that the settings contained in this structure apply globally to all PCI Express Devices. These ACPI references don't say anything about ownership of the AER Capability. Remove use of the FIRMWARE_FIRST bit and rely only on the _OSC bit to determine whether we have control of the AER Capability.

Alexandru Gagniuc committed 6 years ago

Commit c100beb1 parent af039583 files · +3 −38Browse files

Showing the changes to include/linux (1 of 3 files). Show all

Unified · Split

include/linux/pci-acpi.h+0−6
@@ -125,10 +125,4 @@ static inline void acpi_pci_add_bus(struct pci_bus *bus) { } · 124 unmodified lines
125static inline void acpi_pci_remove_bus(struct pci_bus *bus) { }125static inline void acpi_pci_remove_bus(struct pci_bus *bus) { }
126#endif /* CONFIG_ACPI */126#endif /* CONFIG_ACPI */
127 127
128#ifdef CONFIG_ACPI_APEI
129extern bool aer_acpi_firmware_first(void);
130#else
131static inline bool aer_acpi_firmware_first(void) { return false; }
132#endif
133
134#endif /* _PCI_ACPI_H_ */128#endif /* _PCI_ACPI_H_ */

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t