|
@@ -866,7 +866,7 @@ void cper_print_aer(struct pci_dev *dev, int aer_severity,
|
|
|
static int add_error_device(struct aer_err_info *e_info, struct pci_dev *dev)
|
|
|
{
|
|
|
if (e_info->error_dev_num < AER_MAX_MULTI_ERR_DEVICES) {
|
|
|
- e_info->dev[e_info->error_dev_num] = dev;
|
|
|
+ e_info->dev[e_info->error_dev_num] = pci_dev_get(dev);
|
|
|
e_info->error_dev_num++;
|
|
|
return 0;
|
|
|
}
|
|
@@ -1013,6 +1013,7 @@ static void handle_error_source(struct pci_dev *dev, struct aer_err_info *info)
|
|
|
pcie_do_nonfatal_recovery(dev);
|
|
|
else if (info->severity == AER_FATAL)
|
|
|
pcie_do_fatal_recovery(dev, PCIE_PORT_SERVICE_AER);
|
|
|
+ pci_dev_put(dev);
|
|
|
}
|
|
|
|
|
|
#ifdef CONFIG_ACPI_APEI_PCIEAER
|