From: Jan Beulich Date: Fri, 1 Jul 2011 19:44:21 +0000 (+0100) Subject: x86-64/mmcfg: fix pci_mmcfg_arch_free() X-Git-Tag: archive/raspbian/4.8.0-1+rpi1~1^2~10081 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=81855a95f6f38d60b09e527b5bef7072669f2daa;p=xen.git x86-64/mmcfg: fix pci_mmcfg_arch_free() While only used on error paths so far, it should still actually do something (which iounmap(), being an empty stub, doesn't). Signed-off-by: Jan Beulich --- diff --git a/xen/arch/x86/x86_64/mmconfig_64.c b/xen/arch/x86/x86_64/mmconfig_64.c index fc5cca847e..c17acf9ef9 100644 --- a/xen/arch/x86/x86_64/mmconfig_64.c +++ b/xen/arch/x86/x86_64/mmconfig_64.c @@ -166,7 +166,12 @@ void __init pci_mmcfg_arch_free(void) for (i = 0; i < pci_mmcfg_config_num; ++i) { if (pci_mmcfg_virt[i].virt) { - iounmap(pci_mmcfg_virt[i].virt); + unsigned long size; + const struct acpi_mcfg_allocation *cfg = pci_mmcfg_virt[i].cfg; + + size = (cfg->end_bus_number - cfg->start_bus_number + 1) << 20; + destroy_xen_mappings((unsigned long)pci_mmcfg_virt[i].virt, + (unsigned long)pci_mmcfg_virt[i].virt + size); pci_mmcfg_virt[i].virt = NULL; pci_mmcfg_virt[i].cfg = NULL; }