mirror of
https://github.com/torvalds/linux.git
synced 2024-12-15 15:41:58 +00:00
x86/PCI: MMCONFIG: add pci_mmconfig_remove() to remove MMCONFIG region
This is only used internally now, but eventually will be used in the hot-remove path to remove the MMCONFIG region associated with a host bridge. Reviewed-by: Yinghai Lu <yinghai@kernel.org> Signed-off-by: Bjorn Helgaas <bjorn.helgaas@hp.com> Signed-off-by: Jesse Barnes <jbarnes@virtuousgeek.org>
This commit is contained in:
parent
ff097ddd4a
commit
ba2afbabfc
@ -27,17 +27,21 @@ static int __initdata pci_mmcfg_resources_inserted;
|
|||||||
|
|
||||||
LIST_HEAD(pci_mmcfg_list);
|
LIST_HEAD(pci_mmcfg_list);
|
||||||
|
|
||||||
|
static __init void pci_mmconfig_remove(struct pci_mmcfg_region *cfg)
|
||||||
|
{
|
||||||
|
if (cfg->res.parent)
|
||||||
|
release_resource(&cfg->res);
|
||||||
|
list_del(&cfg->list);
|
||||||
|
kfree(cfg);
|
||||||
|
}
|
||||||
|
|
||||||
static __init void free_all_mmcfg(void)
|
static __init void free_all_mmcfg(void)
|
||||||
{
|
{
|
||||||
struct pci_mmcfg_region *cfg, *tmp;
|
struct pci_mmcfg_region *cfg, *tmp;
|
||||||
|
|
||||||
pci_mmcfg_arch_free();
|
pci_mmcfg_arch_free();
|
||||||
list_for_each_entry_safe(cfg, tmp, &pci_mmcfg_list, list) {
|
list_for_each_entry_safe(cfg, tmp, &pci_mmcfg_list, list)
|
||||||
if (cfg->res.parent)
|
pci_mmconfig_remove(cfg);
|
||||||
release_resource(&cfg->res);
|
|
||||||
list_del(&cfg->list);
|
|
||||||
kfree(cfg);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
static __init void list_add_sorted(struct pci_mmcfg_region *new)
|
static __init void list_add_sorted(struct pci_mmcfg_region *new)
|
||||||
|
Loading…
Reference in New Issue
Block a user