Message ID | cbcfe70b-e74f-ca1d-b58d-a8b1c391a91b@huawei.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Headers | show |
On 11/13/2017 7:36 AM, Dongdong Liu wrote: > > 在 2017/11/9 3:13, Tyler Baicar 写道: >> Currently the GHES code only calls into the AER driver for >> recoverable type errors. This is incorrect because errors of >> other severities do not get logged by the AER driver and do not >> get exposed to user space via the AER trace event. So, call >> into the AER driver for PCIe errors regardless of the severity > > It will also call do_recovery() regardless of the severity for AER correctable > errors. > Correctable errors include those error conditions where hardware can recover > without any loss of information. > Hardware corrects these errors and software intervention is not required. > So we'd better modify the code as below. > diff --git a/drivers/pci/pcie/aer/aerdrv_core.c > b/drivers/pci/pcie/aer/aerdrv_core.c > index 7448052..a7f77549 100644 > --- a/drivers/pci/pcie/aer/aerdrv_core.c > +++ b/drivers/pci/pcie/aer/aerdrv_core.c > @@ -633,7 +633,8 @@ static void aer_recover_work_func(struct work_struct *work) > continue; > } > cper_print_aer(pdev, entry.severity, entry.regs); > - do_recovery(pdev, entry.severity); > + if(entry.severity != AER_CORRECTABLE) > + do_recovery(pdev, entry.severity); > pci_dev_put(pdev); > } > } Hello Dongdong, Yes, I have a patch for this that needs to be picked up. https://lkml.org/lkml/2017/8/28/848 Thanks, Tyler
diff --git a/drivers/pci/pcie/aer/aerdrv_core.c b/drivers/pci/pcie/aer/aerdrv_core.c index 7448052..a7f77549 100644 --- a/drivers/pci/pcie/aer/aerdrv_core.c +++ b/drivers/pci/pcie/aer/aerdrv_core.c @@ -633,7 +633,8 @@ static void aer_recover_work_func(struct work_struct *work) continue; } cper_print_aer(pdev, entry.severity, entry.regs); - do_recovery(pdev, entry.severity); + if(entry.severity != AER_CORRECTABLE) + do_recovery(pdev, entry.severity); pci_dev_put(pdev); } }