diff options
author | Sean V Kelley <sean.v.kelley@intel.com> | 2020-11-20 16:10:22 -0800 |
---|---|---|
committer | Bjorn Helgaas <bhelgaas@google.com> | 2020-12-01 18:08:05 -0600 |
commit | 50cc18fcd3053fb46a09db5a39e6516e9560f765 (patch) | |
tree | 4c15178947b810dbab44c6f6c825052bc2ffa717 /drivers/pci/quirks.c | |
parent | f8394f232b1eab649ce2df5c5f15b0e528c92091 (diff) |
PCI/AER: Write AER Capability only when we control it
If an OS has not been granted AER control via _OSC, it should not make
changes to PCI_ERR_ROOT_COMMAND and PCI_ERR_ROOT_STATUS related registers.
Per section 4.5.1 of the System Firmware Intermediary (SFI) _OSC and DPC
Updates ECN [1], this bit also covers these aspects of the PCI Express
Advanced Error Reporting. Based on the above and earlier discussion [2],
make the following changes:
Add a check for the native case (i.e., AER control via _OSC)
Note that the previous "clear, reset, enable" order suggests that the reset
might cause errors that we should ignore. After this commit, those errors
(if any) will remain logged in the PCI_ERR_ROOT_STATUS register.
[1] System Firmware Intermediary (SFI) _OSC and DPC Updates ECN, Feb 24,
2020, affecting PCI Firmware Specification, Rev. 3.2
https://members.pcisig.com/wg/PCI-SIG/document/14076
[2] https://lore.kernel.org/linux-pci/20201020162820.GA370938@bjorn-Precision-5520/
Link: https://lore.kernel.org/r/20201121001036.8560-2-sean.v.kelley@intel.com
Tested-by: Jonathan Cameron <Jonathan.Cameron@huawei.com> # non-native/no RCEC
Signed-off-by: Sean V Kelley <sean.v.kelley@intel.com>
Signed-off-by: Bjorn Helgaas <bhelgaas@google.com>
Diffstat (limited to 'drivers/pci/quirks.c')
0 files changed, 0 insertions, 0 deletions