mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git
synced 2025-01-18 06:15:12 +00:00
ionic: check before releasing pci regions
AER recovery handler can trigger a PCI Reset after tearing down the device setup in the error detection handler. The PCI Reset handler will also attempt to tear down the device setup, and this second tear down needs to know that it doesn't need to call pci_release_regions() a second time. We can clear num_bars on tear down and use that to decide later if we need to clear the resources. This prevents a harmless but disturbing warning message resource: Trying to free nonexistent resource <0xXXXXXXXXXX-0xXXXXXXXXXX> Fixes: c3a910e1c47a ("ionic: fill out pci error handlers") Reviewed-by: Brett Creeley <brett.creeley@amd.com> Signed-off-by: Shannon Nelson <shannon.nelson@amd.com> Signed-off-by: Paolo Abeni <pabeni@redhat.com>
This commit is contained in:
parent
3980cf1655
commit
a36b0787f0
@ -93,6 +93,7 @@ static void ionic_unmap_bars(struct ionic *ionic)
|
||||
bars[i].len = 0;
|
||||
}
|
||||
}
|
||||
ionic->num_bars = 0;
|
||||
}
|
||||
|
||||
void __iomem *ionic_bus_map_dbpage(struct ionic *ionic, int page_num)
|
||||
@ -215,13 +216,15 @@ out:
|
||||
|
||||
static void ionic_clear_pci(struct ionic *ionic)
|
||||
{
|
||||
ionic->idev.dev_info_regs = NULL;
|
||||
ionic->idev.dev_cmd_regs = NULL;
|
||||
ionic->idev.intr_status = NULL;
|
||||
ionic->idev.intr_ctrl = NULL;
|
||||
if (ionic->num_bars) {
|
||||
ionic->idev.dev_info_regs = NULL;
|
||||
ionic->idev.dev_cmd_regs = NULL;
|
||||
ionic->idev.intr_status = NULL;
|
||||
ionic->idev.intr_ctrl = NULL;
|
||||
|
||||
ionic_unmap_bars(ionic);
|
||||
pci_release_regions(ionic->pdev);
|
||||
ionic_unmap_bars(ionic);
|
||||
pci_release_regions(ionic->pdev);
|
||||
}
|
||||
|
||||
if (pci_is_enabled(ionic->pdev))
|
||||
pci_disable_device(ionic->pdev);
|
||||
|
Loading…
x
Reference in New Issue
Block a user