[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 23/38] shpc: split shpc_free from shpc_cleanup
From: |
Michael S. Tsirkin |
Subject: |
Re: [Qemu-devel] [PATCH 23/38] shpc: split shpc_free from shpc_cleanup |
Date: |
Tue, 17 Sep 2013 12:24:33 +0300 |
On Tue, Sep 03, 2013 at 02:33:14PM +0200, Paolo Bonzini wrote:
> Signed-off-by: Paolo Bonzini <address@hidden>
> ---
> hw/pci-bridge/pci_bridge_dev.c | 2 ++
> hw/pci/shpc.c | 8 +++++++-
> include/hw/pci/shpc.h | 1 +
> 3 files changed, 10 insertions(+), 1 deletion(-)
>
> diff --git a/hw/pci-bridge/pci_bridge_dev.c b/hw/pci-bridge/pci_bridge_dev.c
> index a9392c7..97dfc49 100644
> --- a/hw/pci-bridge/pci_bridge_dev.c
> +++ b/hw/pci-bridge/pci_bridge_dev.c
> @@ -79,6 +79,7 @@ msi_error:
> slotid_cap_cleanup(dev);
> slotid_error:
> shpc_cleanup(dev, &bridge_dev->bar);
> + shpc_free(dev);
> shpc_error:
> memory_region_destroy(&bridge_dev->bar);
> pci_bridge_exitfn(dev);
> @@ -94,6 +95,7 @@ static void pci_bridge_dev_exitfn(PCIDevice *dev)
> }
> slotid_cap_cleanup(dev);
> shpc_cleanup(dev, &bridge_dev->bar);
> + shpc_free(dev);
> memory_region_destroy(&bridge_dev->bar);
> pci_bridge_exitfn(dev);
> }
> diff --git a/hw/pci/shpc.c b/hw/pci/shpc.c
> index eb092fd..cefaf69 100644
> --- a/hw/pci/shpc.c
> +++ b/hw/pci/shpc.c
> @@ -630,15 +630,21 @@ int shpc_bar_size(PCIDevice *d)
> void shpc_cleanup(PCIDevice *d, MemoryRegion *bar)
> {
> SHPCDevice *shpc = d->shpc;
> + /* TODO: cleanup config space changes? */
> d->cap_present &= ~QEMU_PCI_CAP_SHPC;
> memory_region_del_subregion(bar, &shpc->mmio);
> - /* TODO: cleanup config space changes? */
> +}
> +
> +void shpc_free(PCIDevice *d)
> +{
> + SHPCDevice *shpc = d->shpc;
> g_free(shpc->config);
> g_free(shpc->cmask);
> g_free(shpc->wmask);
> g_free(shpc->w1cmask);
> memory_region_destroy(&shpc->mmio);
> g_free(shpc);
> + d->shpc = NULL;
Why is this line here btw?
> }
>
> void shpc_cap_write_config(PCIDevice *d, uint32_t addr, uint32_t val, int l)
> diff --git a/include/hw/pci/shpc.h b/include/hw/pci/shpc.h
> index 467911a..5f27431 100644
> --- a/include/hw/pci/shpc.h
> +++ b/include/hw/pci/shpc.h
> @@ -39,6 +39,7 @@ void shpc_reset(PCIDevice *d);
> int shpc_bar_size(PCIDevice *dev);
> int shpc_init(PCIDevice *dev, PCIBus *sec_bus, MemoryRegion *bar, unsigned
> off);
> void shpc_cleanup(PCIDevice *dev, MemoryRegion *bar);
> +void shpc_free(PCIDevice *d);
> void shpc_cap_write_config(PCIDevice *d, uint32_t addr, uint32_t val, int
> len);
>
> extern VMStateInfo shpc_vmstate_info;
> --
> 1.8.3.1
>
- [Qemu-devel] [PATCH 15/38] pci-testdev: use instance_finalize instead of exit, (continued)
- [Qemu-devel] [PATCH 15/38] pci-testdev: use instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 16/38] vfio: reclaim memory in instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 17/38] e1000: use instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 18/38] eepro100: use instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 19/38] ne2000: use instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 20/38] pcnet: use instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 22/38] vmxnet3: reclaim memory in instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 21/38] rtl8139: use instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 23/38] shpc: split shpc_free from shpc_cleanup, Paolo Bonzini, 2013/09/03
- Re: [Qemu-devel] [PATCH 23/38] shpc: split shpc_free from shpc_cleanup,
Michael S. Tsirkin <=
- [Qemu-devel] [PATCH 25/38] pcie_aer: pcie_aer_exit really frees stuff, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 24/38] pci_bridge: split pci_bridge_free from pci_bridge_exitfn, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 26/38] pci_bridge: reclaim memory in instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 27/38] ioh4320: reclaim memory in instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 28/38] xio3130-downstream: reclaim memory in instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 29/38] xio3130-upstream: reclaim memory in instance_finalize instead of exit, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 30/38] pcie: do not recreate mmcfg I/O region, use an alias instead, Paolo Bonzini, 2013/09/03
- [Qemu-devel] [PATCH 31/38] esp: use instance_finalize instead of exit, Paolo Bonzini, 2013/09/03