From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mailman by lists.gnu.org with tmda-scanned (Exim 4.43) id 1JZAuP-0008Af-Ic for qemu-devel@nongnu.org; Tue, 11 Mar 2008 16:17:13 -0400 Received: from exim by lists.gnu.org with spam-scanned (Exim 4.43) id 1JZAuO-0008A0-3C for qemu-devel@nongnu.org; Tue, 11 Mar 2008 16:17:13 -0400 Received: from [199.232.76.173] (helo=monty-python.gnu.org) by lists.gnu.org with esmtp (Exim 4.43) id 1JZAuN-00089p-V0 for qemu-devel@nongnu.org; Tue, 11 Mar 2008 16:17:11 -0400 Received: from mx1.redhat.com ([66.187.233.31]) by monty-python.gnu.org with esmtp (Exim 4.60) (envelope-from ) id 1JZAuN-0004Ht-Kf for qemu-devel@nongnu.org; Tue, 11 Mar 2008 16:17:11 -0400 Message-Id: <20080311201418.964005818@localhost.localdomain> References: <20080311201151.959635433@localhost.localdomain> Date: Tue, 11 Mar 2008 17:12:13 -0300 From: Marcelo Tosatti Content-Disposition: inline; filename=lsi-unregister Subject: [Qemu-devel] [patch 22/24] QEMU/KVM: LSI SCSI and e1000 unregister callbacks Reply-To: qemu-devel@nongnu.org List-Id: qemu-devel.nongnu.org List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org, kvm-devel@lists.sourceforge.net Cc: aliguori@us.ibm.com, Marcelo Tosatti Signed-off-by: Marcelo Tosatti Index: kvm-userspace.hotplug2/qemu/hw/lsi53c895a.c =================================================================== --- kvm-userspace.hotplug2.orig/qemu/hw/lsi53c895a.c +++ kvm-userspace.hotplug2/qemu/hw/lsi53c895a.c @@ -1849,6 +1849,18 @@ void lsi_scsi_attach(void *opaque, Block bd->devfn = s->pci_dev.devfn; } +int lsi_scsi_uninit(PCIDevice *d) +{ + LSIState *s = (LSIState *) d; + + cpu_unregister_io_memory(s->mmio_io_addr); + cpu_unregister_io_memory(s->ram_io_addr); + + qemu_free(s->queue); + + return 0; +} + void *lsi_scsi_init(PCIBus *bus, int devfn) { LSIState *s; @@ -1881,6 +1893,7 @@ void *lsi_scsi_init(PCIBus *bus, int dev s->queue = qemu_malloc(sizeof(lsi_queue)); s->queue_len = 1; s->active_commands = 0; + s->pci_dev.unregister = lsi_scsi_uninit; lsi_soft_reset(s); Index: kvm-userspace.hotplug2/qemu/hw/e1000.c =================================================================== --- kvm-userspace.hotplug2.orig/qemu/hw/e1000.c +++ kvm-userspace.hotplug2/qemu/hw/e1000.c @@ -930,6 +930,16 @@ e1000_mmio_map(PCIDevice *pci_dev, int r cpu_register_physical_memory(addr, PNPMMIO_SIZE, d->mmio_index); } +static int +pci_e1000_uninit(PCIDevice *dev) +{ + E1000State *d = (E1000State *) dev; + + cpu_unregister_io_memory(d->mmio_index); + + return 0; +} + PCIDevice * pci_e1000_init(PCIBus *bus, NICInfo *nd, int devfn) { @@ -994,6 +1004,7 @@ pci_e1000_init(PCIBus *bus, NICInfo *nd, d->nd->macaddr[3], d->nd->macaddr[4], d->nd->macaddr[5]); register_savevm(info_str, d->instance, 1, nic_save, nic_load, d); + d->dev.unregister = pci_e1000_uninit; return (PCIDevice *)d; } --