From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:38967) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VBURT-0004MO-L7 for qemu-devel@nongnu.org; Mon, 19 Aug 2013 14:44:45 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VBURM-0007C8-JO for qemu-devel@nongnu.org; Mon, 19 Aug 2013 14:44:37 -0400 Received: from mail-qa0-f49.google.com ([209.85.216.49]:45131) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VBURM-0007C1-Fb for qemu-devel@nongnu.org; Mon, 19 Aug 2013 14:44:32 -0400 Received: by mail-qa0-f49.google.com with SMTP id cr7so2027054qab.8 for ; Mon, 19 Aug 2013 11:44:31 -0700 (PDT) From: Mike Day Date: Mon, 19 Aug 2013 14:44:10 -0400 Message-Id: <1376937850-21762-1-git-send-email-ncmike@ncultra.org> Subject: [Qemu-devel] [PATCH RESEND] RCU implementation for Qemu. Fixup some dynamic casts in the Qemu device tree to correspond to the QOM type-checking system. List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Mike Day , Paolo Bonzini These patches change from using Linux kernel style upcasts to typesafe object oriented casts with runtime checking semantics. These patches apply to Paolo Bonzini's rcu tree: https://github.com/bonzini/qemu/tree/rcu commit 781e47bf1693a80b84eec298a6a1c7b29ab2c135 Signed-off-by: Mike Day --- hw/misc/ivshmem.c | 2 +- hw/pci-bridge/pci_bridge_dev.c | 6 +++--- hw/pci/pci_bridge.c | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/hw/misc/ivshmem.c b/hw/misc/ivshmem.c index ebcb52a..46d8c27 100644 --- a/hw/misc/ivshmem.c +++ b/hw/misc/ivshmem.c @@ -789,7 +789,7 @@ static void pci_ivshmem_uninit(PCIDevice *dev) static void pci_ivshmem_instance_finalize(Object *obj) { - IVShmemState *s = IVSHMEM(dev); + IVShmemState *s = IVSHMEM(obj); if (s->migration_blocker) { migrate_del_blocker(s->migration_blocker); diff --git a/hw/pci-bridge/pci_bridge_dev.c b/hw/pci-bridge/pci_bridge_dev.c index c995d5d..22caf14 100644 --- a/hw/pci-bridge/pci_bridge_dev.c +++ b/hw/pci-bridge/pci_bridge_dev.c @@ -87,7 +87,6 @@ shpc_error: bridge_error: return err; } - static void pci_bridge_dev_exitfn(PCIDevice *dev) { PCIBridgeDev *bridge_dev = PCI_BRIDGE_DEV(dev); @@ -102,8 +101,9 @@ static void pci_bridge_dev_exitfn(PCIDevice *dev) static void pci_bridge_dev_instance_finalize(Object *obj) { PCIDevice *dev = PCI_DEVICE(obj); - PCIBridge *br = DO_UPCAST(PCIBridge, dev, dev); - PCIBridgeDev *bridge_dev = DO_UPCAST(PCIBridgeDev, bridge, br); + PCIBridge *br = PCI_BRIDGE(dev); + PCIBridgeDev *bridge_dev = PCI_BRIDGE_DEV(br); + shpc_free(dev); memory_region_destroy(&bridge_dev->bar); pci_bridge_free(dev); diff --git a/hw/pci/pci_bridge.c b/hw/pci/pci_bridge.c index 63f9912..307e076 100644 --- a/hw/pci/pci_bridge.c +++ b/hw/pci/pci_bridge.c @@ -391,7 +391,7 @@ void pci_bridge_exitfn(PCIDevice *pci_dev) void pci_bridge_free(PCIDevice *pci_dev) { - PCIBridge *s = DO_UPCAST(PCIBridge, dev, pci_dev); + PCIBridge *s = PCI_BRIDGE(pci_dev); pci_bridge_region_cleanup(s, s->windows); memory_region_destroy(&s->address_space_mem); memory_region_destroy(&s->address_space_io); -- 1.8.3.1