diff mbox

[2/8] pci: Don't del_subgregion on a non subregion

Message ID 1368442465-14363-3-git-send-email-david@gibson.dropbear.id.au
State New
Headers show

Commit Message

David Gibson May 13, 2013, 10:54 a.m. UTC
Currently do_pci_unregister_device() calls memory_region_del_subregion()
on the device's bus_master_enable_region and the device's iommu region.
But the bus_master_enable_region is an _alias_ to the iommu region, the
iommu region is _not_ a subregion of it.  I suspect this has slipped by
only because PCI hot unplug has not been tested with the new PCI DMA
address space handling.  This patch removes the bogus call.

Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
---
 hw/pci/pci.c |    1 -
 1 file changed, 1 deletion(-)

Comments

Paolo Bonzini May 13, 2013, 12:14 p.m. UTC | #1
Il 13/05/2013 12:54, David Gibson ha scritto:
> Currently do_pci_unregister_device() calls memory_region_del_subregion()
> on the device's bus_master_enable_region and the device's iommu region.
> But the bus_master_enable_region is an _alias_ to the iommu region, the
> iommu region is _not_ a subregion of it.  I suspect this has slipped by
> only because PCI hot unplug has not been tested with the new PCI DMA
> address space handling.  This patch removes the bogus call.
> 
> Signed-off-by: David Gibson <david@gibson.dropbear.id.au>
> ---
>  hw/pci/pci.c |    1 -
>  1 file changed, 1 deletion(-)
> 
> diff --git a/hw/pci/pci.c b/hw/pci/pci.c
> index 0ba39e6..58d3f69 100644
> --- a/hw/pci/pci.c
> +++ b/hw/pci/pci.c
> @@ -875,7 +875,6 @@ static void do_pci_unregister_device(PCIDevice *pci_dev)
>      pci_config_free(pci_dev);
>  
>      address_space_destroy(&pci_dev->bus_master_as);
> -    memory_region_del_subregion(&pci_dev->bus_master_enable_region, pci_dev->iommu);
>      pci_dev->bus->iommu_dtor_fn(pci_dev->iommu);
>      memory_region_destroy(&pci_dev->bus_master_enable_region);
>  }
> 

Applied to iommu branch, thanks.

Paolo
diff mbox

Patch

diff --git a/hw/pci/pci.c b/hw/pci/pci.c
index 0ba39e6..58d3f69 100644
--- a/hw/pci/pci.c
+++ b/hw/pci/pci.c
@@ -875,7 +875,6 @@  static void do_pci_unregister_device(PCIDevice *pci_dev)
     pci_config_free(pci_dev);
 
     address_space_destroy(&pci_dev->bus_master_as);
-    memory_region_del_subregion(&pci_dev->bus_master_enable_region, pci_dev->iommu);
     pci_dev->bus->iommu_dtor_fn(pci_dev->iommu);
     memory_region_destroy(&pci_dev->bus_master_enable_region);
 }