From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53291) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UjwM1-0007GE-1Z for qemu-devel@nongnu.org; Tue, 04 Jun 2013 14:53:09 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1UjwLz-0007Sj-Q2 for qemu-devel@nongnu.org; Tue, 04 Jun 2013 14:53:08 -0400 Received: from mail-we0-x231.google.com ([2a00:1450:400c:c03::231]:53712) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1UjwLz-0007RN-KP for qemu-devel@nongnu.org; Tue, 04 Jun 2013 14:53:07 -0400 Received: by mail-we0-f177.google.com with SMTP id m19so549442wev.36 for ; Tue, 04 Jun 2013 11:53:06 -0700 (PDT) Sender: Paolo Bonzini From: Paolo Bonzini Date: Tue, 4 Jun 2013 20:52:05 +0200 Message-Id: <1370371954-8479-11-git-send-email-pbonzini@redhat.com> In-Reply-To: <1370371954-8479-1-git-send-email-pbonzini@redhat.com> References: <1370371954-8479-1-git-send-email-pbonzini@redhat.com> Subject: [Qemu-devel] [PATCH 10/39] ahci: split exit and instance_finalize List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: mst@redhat.com Signed-off-by: Paolo Bonzini --- hw/ide/ahci.c | 2 +- hw/ide/ahci.h | 2 +- hw/ide/ich.c | 13 +++++++++---- 3 files changed, 11 insertions(+), 6 deletions(-) diff --git a/hw/ide/ahci.c b/hw/ide/ahci.c index 6b87549..083e0f4 100644 --- a/hw/ide/ahci.c +++ b/hw/ide/ahci.c @@ -1174,7 +1174,7 @@ void ahci_init(AHCIState *s, DeviceState *qdev, AddressSpace *as, int ports) } } -void ahci_uninit(AHCIState *s) +void ahci_instance_finalize(AHCIState *s) { memory_region_destroy(&s->mem); memory_region_destroy(&s->idp); diff --git a/hw/ide/ahci.h b/hw/ide/ahci.h index 341a571..b2197c2 100644 --- a/hw/ide/ahci.h +++ b/hw/ide/ahci.h @@ -339,7 +339,7 @@ typedef struct NCQFrame { } QEMU_PACKED NCQFrame; void ahci_init(AHCIState *s, DeviceState *qdev, AddressSpace *as, int ports); -void ahci_uninit(AHCIState *s); +void ahci_instance_finalize(AHCIState *s); void ahci_reset(AHCIState *s); diff --git a/hw/ide/ich.c b/hw/ide/ich.c index 6c0c0c2..7c8c672 100644 --- a/hw/ide/ich.c +++ b/hw/ide/ich.c @@ -140,11 +140,15 @@ static int pci_ich9_ahci_init(PCIDevice *dev) static void pci_ich9_uninit(PCIDevice *dev) { - struct AHCIPCIState *d; - d = DO_UPCAST(struct AHCIPCIState, card, dev); - msi_uninit(dev); - ahci_uninit(&d->ahci); +} + +static void pci_ich9_instance_finalize(Object *obj) +{ + PCIDevice *dev = PCI_DEVICE(obj); + struct AHCIPCIState *d = DO_UPCAST(struct AHCIPCIState, card, dev); + + ahci_instance_finalize(&d->ahci); } static void ich_ahci_class_init(ObjectClass *klass, void *data) @@ -167,6 +171,7 @@ static const TypeInfo ich_ahci_info = { .parent = TYPE_PCI_DEVICE, .instance_size = sizeof(AHCIPCIState), .class_init = ich_ahci_class_init, + .instance_finalize = pci_ich9_instance_finalize, }; static void ich_ahci_register_types(void) -- 1.8.1.4