diff options
| -rw-r--r-- | drivers/acpi/apei/ghes.c | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c index d668a8ae602b..ab315515908e 100644 --- a/drivers/acpi/apei/ghes.c +++ b/drivers/acpi/apei/ghes.c | |||
| @@ -449,9 +449,19 @@ static void ghes_do_proc(struct ghes *ghes, | |||
| 449 | pcie_err->validation_bits & CPER_PCIE_VALID_AER_INFO) { | 449 | pcie_err->validation_bits & CPER_PCIE_VALID_AER_INFO) { |
| 450 | unsigned int devfn; | 450 | unsigned int devfn; |
| 451 | int aer_severity; | 451 | int aer_severity; |
| 452 | |||
| 452 | devfn = PCI_DEVFN(pcie_err->device_id.device, | 453 | devfn = PCI_DEVFN(pcie_err->device_id.device, |
| 453 | pcie_err->device_id.function); | 454 | pcie_err->device_id.function); |
| 454 | aer_severity = cper_severity_to_aer(sev); | 455 | aer_severity = cper_severity_to_aer(sev); |
| 456 | |||
| 457 | /* | ||
| 458 | * If firmware reset the component to contain | ||
| 459 | * the error, we must reinitialize it before | ||
| 460 | * use, so treat it as a fatal AER error. | ||
| 461 | */ | ||
| 462 | if (gdata->flags & CPER_SEC_RESET) | ||
| 463 | aer_severity = AER_FATAL; | ||
| 464 | |||
| 455 | aer_recover_queue(pcie_err->device_id.segment, | 465 | aer_recover_queue(pcie_err->device_id.segment, |
| 456 | pcie_err->device_id.bus, | 466 | pcie_err->device_id.bus, |
| 457 | devfn, aer_severity); | 467 | devfn, aer_severity); |
