All of lore.kernel.org
 help / color / mirror / Atom feed
From: Paolo Bonzini <pbonzini@redhat.com>
To: "Andreas Färber" <afaerber@suse.de>
Cc: X86 <xen-devel@lists.xensource.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	qemu-devel@nongnu.org, anthony@codemonkey.ws,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Subject: Re: [Qemu-devel] [PATCH 01/34] qdev: Eliminate qdev_free() in favor of QOM
Date: Mon, 26 Nov 2012 08:20:58 +0100	[thread overview]
Message-ID: <50B3185A.3080005@redhat.com> (raw)
In-Reply-To: <1353888766-6951-2-git-send-email-afaerber@suse.de>

Il 26/11/2012 01:12, Andreas Färber ha scritto:
> qdev_free() was trivially wrapping object_delete(). Inline it and drop
> the wrapper as a further step to QOM'ify qdev.

The reference counts of devices and buses are completely disconnected
from reality, and that's why object_delete() works.

I'd prefer this patch not to be applied until this is straightened out...

Paolo

> Signed-off-by: Andreas Färber <afaerber@suse.de>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  hw/acpi_piix4.c      |    2 +-
>  hw/pci-hotplug.c     |    2 +-
>  hw/pci_bridge.c      |    2 +-
>  hw/pcie.c            |    2 +-
>  hw/qdev-core.h       |    1 -
>  hw/qdev-monitor.c    |    2 +-
>  hw/qdev.c            |   12 +++---------
>  hw/scsi-bus.c        |    4 ++--
>  hw/shpc.c            |    2 +-
>  hw/usb/bus.c         |    7 ++++---
>  hw/usb/dev-storage.c |    2 +-
>  hw/usb/host-linux.c  |    2 +-
>  hw/xen_platform.c    |    2 +-
>  13 Dateien geändert, 18 Zeilen hinzugefügt(+), 24 Zeilen entfernt(-)
> 
> diff --git a/hw/acpi_piix4.c b/hw/acpi_piix4.c
> index 0fa4c98..e6d09be 100644
> --- a/hw/acpi_piix4.c
> +++ b/hw/acpi_piix4.c
> @@ -361,7 +361,7 @@ static void acpi_piix_eject_slot(PIIX4PMState *s, unsigned slots)
>              if (pc->no_hotplug) {
>                  slot_free = false;
>              } else {
> -                qdev_free(qdev);
> +                object_delete(OBJECT(qdev));
>              }
>          }
>      }
> diff --git a/hw/pci-hotplug.c b/hw/pci-hotplug.c
> index e7fb780..d766eab 100644
> --- a/hw/pci-hotplug.c
> +++ b/hw/pci-hotplug.c
> @@ -204,7 +204,7 @@ static PCIDevice *qemu_pci_hot_add_storage(Monitor *mon,
>          }
>          dev = pci_create(bus, devfn, "virtio-blk-pci");
>          if (qdev_prop_set_drive(&dev->qdev, "drive", dinfo->bdrv) < 0) {
> -            qdev_free(&dev->qdev);
> +            object_delete(OBJECT(dev));
>              dev = NULL;
>              break;
>          }
> diff --git a/hw/pci_bridge.c b/hw/pci_bridge.c
> index 4680501..3689502 100644
> --- a/hw/pci_bridge.c
> +++ b/hw/pci_bridge.c
> @@ -347,7 +347,7 @@ void pci_bridge_exitfn(PCIDevice *pci_dev)
>      pci_bridge_region_cleanup(s, s->windows);
>      memory_region_destroy(&s->address_space_mem);
>      memory_region_destroy(&s->address_space_io);
> -    /* qbus_free() is called automatically by qdev_free() */
> +    /* qbus_free() is called automatically by object_delete() */
>  }
>  
>  /*
> diff --git a/hw/pcie.c b/hw/pcie.c
> index 7c92f19..24bfc95 100644
> --- a/hw/pcie.c
> +++ b/hw/pcie.c
> @@ -235,7 +235,7 @@ static int pcie_cap_slot_hotplug(DeviceState *qdev,
>                                     PCI_EXP_SLTSTA_PDS);
>          pcie_cap_slot_event(d, PCI_EXP_HP_EV_PDC);
>      } else {
> -        qdev_free(&pci_dev->qdev);
> +        object_delete(OBJECT(pci_dev));
>          pci_word_test_and_clear_mask(exp_cap + PCI_EXP_SLTSTA,
>                                       PCI_EXP_SLTSTA_PDS);
>          pcie_cap_slot_event(d, PCI_EXP_HP_EV_PDC);
> diff --git a/hw/qdev-core.h b/hw/qdev-core.h
> index fce9e22..36191e9 100644
> --- a/hw/qdev-core.h
> +++ b/hw/qdev-core.h
> @@ -158,7 +158,6 @@ void qdev_init_nofail(DeviceState *dev);
>  void qdev_set_legacy_instance_id(DeviceState *dev, int alias_id,
>                                   int required_for_version);
>  void qdev_unplug(DeviceState *dev, Error **errp);
> -void qdev_free(DeviceState *dev);
>  int qdev_simple_unplug_cb(DeviceState *dev);
>  void qdev_machine_creation_done(void);
>  bool qdev_machine_modified(void);
> diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c
> index 479eecd..d534b9d 100644
> --- a/hw/qdev-monitor.c
> +++ b/hw/qdev-monitor.c
> @@ -466,7 +466,7 @@ DeviceState *qdev_device_add(QemuOpts *opts)
>          qdev->id = id;
>      }
>      if (qemu_opt_foreach(opts, set_property, qdev, 1) != 0) {
> -        qdev_free(qdev);
> +        object_delete(OBJECT(qdev));
>          return NULL;
>      }
>      if (qdev->id) {
> diff --git a/hw/qdev.c b/hw/qdev.c
> index 7ddcd24..c2d9b48 100644
> --- a/hw/qdev.c
> +++ b/hw/qdev.c
> @@ -154,7 +154,7 @@ int qdev_init(DeviceState *dev)
>  
>      rc = dc->init(dev);
>      if (rc < 0) {
> -        qdev_free(dev);
> +        object_delete(OBJECT(dev));
>          return rc;
>      }
>  
> @@ -237,7 +237,7 @@ void qbus_reset_all_fn(void *opaque)
>  int qdev_simple_unplug_cb(DeviceState *dev)
>  {
>      /* just zap it */
> -    qdev_free(dev);
> +    object_delete(OBJECT(dev));
>      return 0;
>  }
>  
> @@ -259,12 +259,6 @@ void qdev_init_nofail(DeviceState *dev)
>      }
>  }
>  
> -/* Unlink device from bus and free the structure.  */
> -void qdev_free(DeviceState *dev)
> -{
> -    object_delete(OBJECT(dev));
> -}
> -
>  void qdev_machine_creation_done(void)
>  {
>      /*
> @@ -765,7 +759,7 @@ static void qbus_finalize(Object *obj)
>  
>      while ((kid = QTAILQ_FIRST(&bus->children)) != NULL) {
>          DeviceState *dev = kid->child;
> -        qdev_free(dev);
> +        object_delete(OBJECT(dev));
>      }
>      if (bus->parent) {
>          QLIST_REMOVE(bus, sibling);
> diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c
> index dfb2631..68a27eb 100644
> --- a/hw/scsi-bus.c
> +++ b/hw/scsi-bus.c
> @@ -175,7 +175,7 @@ static int scsi_qdev_init(DeviceState *qdev)
>          d = scsi_device_find(bus, dev->channel, dev->id, dev->lun);
>          assert(d);
>          if (d->lun == dev->lun && dev != d) {
> -            qdev_free(&d->qdev);
> +            object_delete(OBJECT(d));
>          }
>      }
>  
> @@ -222,7 +222,7 @@ SCSIDevice *scsi_bus_legacy_add_drive(SCSIBus *bus, BlockDriverState *bdrv,
>          qdev_prop_set_bit(dev, "removable", removable);
>      }
>      if (qdev_prop_set_drive(dev, "drive", bdrv) < 0) {
> -        qdev_free(dev);
> +        object_delete(OBJECT(dev));
>          return NULL;
>      }
>      if (qdev_init(dev) < 0)
> diff --git a/hw/shpc.c b/hw/shpc.c
> index 4597bbd..24bdfb8 100644
> --- a/hw/shpc.c
> +++ b/hw/shpc.c
> @@ -253,7 +253,7 @@ static void shpc_free_devices_in_slot(SHPCDevice *shpc, int slot)
>           ++devfn) {
>          PCIDevice *affected_dev = shpc->sec_bus->devices[devfn];
>          if (affected_dev) {
> -            qdev_free(&affected_dev->qdev);
> +            object_delete(OBJECT(affected_dev));
>          }
>      }
>  }
> diff --git a/hw/usb/bus.c b/hw/usb/bus.c
> index 99aac7a..1675798 100644
> --- a/hw/usb/bus.c
> +++ b/hw/usb/bus.c
> @@ -337,8 +337,9 @@ void usb_port_location(USBPort *downstream, USBPort *upstream, int portnr)
>  
>  void usb_unregister_port(USBBus *bus, USBPort *port)
>  {
> -    if (port->dev)
> -        qdev_free(&port->dev->qdev);
> +    if (port->dev) {
> +        object_delete(OBJECT(port->dev));
> +    }
>      QTAILQ_REMOVE(&bus->free, port, next);
>      bus->nfree--;
>  }
> @@ -458,7 +459,7 @@ int usb_device_delete_addr(int busnr, int addr)
>          return -1;
>      dev = port->dev;
>  
> -    qdev_free(&dev->qdev);
> +    object_delete(OBJECT(dev));
>      return 0;
>  }
>  
> diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c
> index 50af971..2efb4d5 100644
> --- a/hw/usb/dev-storage.c
> +++ b/hw/usb/dev-storage.c
> @@ -664,7 +664,7 @@ static USBDevice *usb_msd_init(USBBus *bus, const char *filename)
>          return NULL;
>      }
>      if (qdev_prop_set_drive(&dev->qdev, "drive", dinfo->bdrv) < 0) {
> -        qdev_free(&dev->qdev);
> +        object_delete(OBJECT(dev));
>          return NULL;
>      }
>      if (qdev_init(&dev->qdev) < 0)
> diff --git a/hw/usb/host-linux.c b/hw/usb/host-linux.c
> index aa77b77..a0417fc 100644
> --- a/hw/usb/host-linux.c
> +++ b/hw/usb/host-linux.c
> @@ -1584,7 +1584,7 @@ USBDevice *usb_host_device_open(USBBus *bus, const char *devname)
>      return dev;
>  
>  fail:
> -    qdev_free(&dev->qdev);
> +    object_delete(OBJECT(dev));
>      return NULL;
>  }
>  
> diff --git a/hw/xen_platform.c b/hw/xen_platform.c
> index a54e7a2..d56f3e5 100644
> --- a/hw/xen_platform.c
> +++ b/hw/xen_platform.c
> @@ -89,7 +89,7 @@ static void unplug_nic(PCIBus *b, PCIDevice *d, void *o)
>      if (pci_get_word(d->config + PCI_CLASS_DEVICE) ==
>              PCI_CLASS_NETWORK_ETHERNET
>              && strcmp(d->name, "xen-pci-passthrough") != 0) {
> -        qdev_free(&d->qdev);
> +        object_delete(OBJECT(d));
>      }
>  }
>  
> 

WARNING: multiple messages have this Message-ID (diff)
From: Paolo Bonzini <pbonzini@redhat.com>
To: "Andreas Färber" <afaerber@suse.de>
Cc: X86 <xen-devel@lists.xensource.com>,
	"Michael S. Tsirkin" <mst@redhat.com>,
	qemu-devel@nongnu.org, anthony@codemonkey.ws,
	Stefano Stabellini <stefano.stabellini@eu.citrix.com>
Subject: Re: [PATCH 01/34] qdev: Eliminate qdev_free() in favor of QOM
Date: Mon, 26 Nov 2012 08:20:58 +0100	[thread overview]
Message-ID: <50B3185A.3080005@redhat.com> (raw)
In-Reply-To: <1353888766-6951-2-git-send-email-afaerber@suse.de>

Il 26/11/2012 01:12, Andreas Färber ha scritto:
> qdev_free() was trivially wrapping object_delete(). Inline it and drop
> the wrapper as a further step to QOM'ify qdev.

The reference counts of devices and buses are completely disconnected
from reality, and that's why object_delete() works.

I'd prefer this patch not to be applied until this is straightened out...

Paolo

> Signed-off-by: Andreas Färber <afaerber@suse.de>
> Cc: Paolo Bonzini <pbonzini@redhat.com>
> ---
>  hw/acpi_piix4.c      |    2 +-
>  hw/pci-hotplug.c     |    2 +-
>  hw/pci_bridge.c      |    2 +-
>  hw/pcie.c            |    2 +-
>  hw/qdev-core.h       |    1 -
>  hw/qdev-monitor.c    |    2 +-
>  hw/qdev.c            |   12 +++---------
>  hw/scsi-bus.c        |    4 ++--
>  hw/shpc.c            |    2 +-
>  hw/usb/bus.c         |    7 ++++---
>  hw/usb/dev-storage.c |    2 +-
>  hw/usb/host-linux.c  |    2 +-
>  hw/xen_platform.c    |    2 +-
>  13 Dateien geändert, 18 Zeilen hinzugefügt(+), 24 Zeilen entfernt(-)
> 
> diff --git a/hw/acpi_piix4.c b/hw/acpi_piix4.c
> index 0fa4c98..e6d09be 100644
> --- a/hw/acpi_piix4.c
> +++ b/hw/acpi_piix4.c
> @@ -361,7 +361,7 @@ static void acpi_piix_eject_slot(PIIX4PMState *s, unsigned slots)
>              if (pc->no_hotplug) {
>                  slot_free = false;
>              } else {
> -                qdev_free(qdev);
> +                object_delete(OBJECT(qdev));
>              }
>          }
>      }
> diff --git a/hw/pci-hotplug.c b/hw/pci-hotplug.c
> index e7fb780..d766eab 100644
> --- a/hw/pci-hotplug.c
> +++ b/hw/pci-hotplug.c
> @@ -204,7 +204,7 @@ static PCIDevice *qemu_pci_hot_add_storage(Monitor *mon,
>          }
>          dev = pci_create(bus, devfn, "virtio-blk-pci");
>          if (qdev_prop_set_drive(&dev->qdev, "drive", dinfo->bdrv) < 0) {
> -            qdev_free(&dev->qdev);
> +            object_delete(OBJECT(dev));
>              dev = NULL;
>              break;
>          }
> diff --git a/hw/pci_bridge.c b/hw/pci_bridge.c
> index 4680501..3689502 100644
> --- a/hw/pci_bridge.c
> +++ b/hw/pci_bridge.c
> @@ -347,7 +347,7 @@ void pci_bridge_exitfn(PCIDevice *pci_dev)
>      pci_bridge_region_cleanup(s, s->windows);
>      memory_region_destroy(&s->address_space_mem);
>      memory_region_destroy(&s->address_space_io);
> -    /* qbus_free() is called automatically by qdev_free() */
> +    /* qbus_free() is called automatically by object_delete() */
>  }
>  
>  /*
> diff --git a/hw/pcie.c b/hw/pcie.c
> index 7c92f19..24bfc95 100644
> --- a/hw/pcie.c
> +++ b/hw/pcie.c
> @@ -235,7 +235,7 @@ static int pcie_cap_slot_hotplug(DeviceState *qdev,
>                                     PCI_EXP_SLTSTA_PDS);
>          pcie_cap_slot_event(d, PCI_EXP_HP_EV_PDC);
>      } else {
> -        qdev_free(&pci_dev->qdev);
> +        object_delete(OBJECT(pci_dev));
>          pci_word_test_and_clear_mask(exp_cap + PCI_EXP_SLTSTA,
>                                       PCI_EXP_SLTSTA_PDS);
>          pcie_cap_slot_event(d, PCI_EXP_HP_EV_PDC);
> diff --git a/hw/qdev-core.h b/hw/qdev-core.h
> index fce9e22..36191e9 100644
> --- a/hw/qdev-core.h
> +++ b/hw/qdev-core.h
> @@ -158,7 +158,6 @@ void qdev_init_nofail(DeviceState *dev);
>  void qdev_set_legacy_instance_id(DeviceState *dev, int alias_id,
>                                   int required_for_version);
>  void qdev_unplug(DeviceState *dev, Error **errp);
> -void qdev_free(DeviceState *dev);
>  int qdev_simple_unplug_cb(DeviceState *dev);
>  void qdev_machine_creation_done(void);
>  bool qdev_machine_modified(void);
> diff --git a/hw/qdev-monitor.c b/hw/qdev-monitor.c
> index 479eecd..d534b9d 100644
> --- a/hw/qdev-monitor.c
> +++ b/hw/qdev-monitor.c
> @@ -466,7 +466,7 @@ DeviceState *qdev_device_add(QemuOpts *opts)
>          qdev->id = id;
>      }
>      if (qemu_opt_foreach(opts, set_property, qdev, 1) != 0) {
> -        qdev_free(qdev);
> +        object_delete(OBJECT(qdev));
>          return NULL;
>      }
>      if (qdev->id) {
> diff --git a/hw/qdev.c b/hw/qdev.c
> index 7ddcd24..c2d9b48 100644
> --- a/hw/qdev.c
> +++ b/hw/qdev.c
> @@ -154,7 +154,7 @@ int qdev_init(DeviceState *dev)
>  
>      rc = dc->init(dev);
>      if (rc < 0) {
> -        qdev_free(dev);
> +        object_delete(OBJECT(dev));
>          return rc;
>      }
>  
> @@ -237,7 +237,7 @@ void qbus_reset_all_fn(void *opaque)
>  int qdev_simple_unplug_cb(DeviceState *dev)
>  {
>      /* just zap it */
> -    qdev_free(dev);
> +    object_delete(OBJECT(dev));
>      return 0;
>  }
>  
> @@ -259,12 +259,6 @@ void qdev_init_nofail(DeviceState *dev)
>      }
>  }
>  
> -/* Unlink device from bus and free the structure.  */
> -void qdev_free(DeviceState *dev)
> -{
> -    object_delete(OBJECT(dev));
> -}
> -
>  void qdev_machine_creation_done(void)
>  {
>      /*
> @@ -765,7 +759,7 @@ static void qbus_finalize(Object *obj)
>  
>      while ((kid = QTAILQ_FIRST(&bus->children)) != NULL) {
>          DeviceState *dev = kid->child;
> -        qdev_free(dev);
> +        object_delete(OBJECT(dev));
>      }
>      if (bus->parent) {
>          QLIST_REMOVE(bus, sibling);
> diff --git a/hw/scsi-bus.c b/hw/scsi-bus.c
> index dfb2631..68a27eb 100644
> --- a/hw/scsi-bus.c
> +++ b/hw/scsi-bus.c
> @@ -175,7 +175,7 @@ static int scsi_qdev_init(DeviceState *qdev)
>          d = scsi_device_find(bus, dev->channel, dev->id, dev->lun);
>          assert(d);
>          if (d->lun == dev->lun && dev != d) {
> -            qdev_free(&d->qdev);
> +            object_delete(OBJECT(d));
>          }
>      }
>  
> @@ -222,7 +222,7 @@ SCSIDevice *scsi_bus_legacy_add_drive(SCSIBus *bus, BlockDriverState *bdrv,
>          qdev_prop_set_bit(dev, "removable", removable);
>      }
>      if (qdev_prop_set_drive(dev, "drive", bdrv) < 0) {
> -        qdev_free(dev);
> +        object_delete(OBJECT(dev));
>          return NULL;
>      }
>      if (qdev_init(dev) < 0)
> diff --git a/hw/shpc.c b/hw/shpc.c
> index 4597bbd..24bdfb8 100644
> --- a/hw/shpc.c
> +++ b/hw/shpc.c
> @@ -253,7 +253,7 @@ static void shpc_free_devices_in_slot(SHPCDevice *shpc, int slot)
>           ++devfn) {
>          PCIDevice *affected_dev = shpc->sec_bus->devices[devfn];
>          if (affected_dev) {
> -            qdev_free(&affected_dev->qdev);
> +            object_delete(OBJECT(affected_dev));
>          }
>      }
>  }
> diff --git a/hw/usb/bus.c b/hw/usb/bus.c
> index 99aac7a..1675798 100644
> --- a/hw/usb/bus.c
> +++ b/hw/usb/bus.c
> @@ -337,8 +337,9 @@ void usb_port_location(USBPort *downstream, USBPort *upstream, int portnr)
>  
>  void usb_unregister_port(USBBus *bus, USBPort *port)
>  {
> -    if (port->dev)
> -        qdev_free(&port->dev->qdev);
> +    if (port->dev) {
> +        object_delete(OBJECT(port->dev));
> +    }
>      QTAILQ_REMOVE(&bus->free, port, next);
>      bus->nfree--;
>  }
> @@ -458,7 +459,7 @@ int usb_device_delete_addr(int busnr, int addr)
>          return -1;
>      dev = port->dev;
>  
> -    qdev_free(&dev->qdev);
> +    object_delete(OBJECT(dev));
>      return 0;
>  }
>  
> diff --git a/hw/usb/dev-storage.c b/hw/usb/dev-storage.c
> index 50af971..2efb4d5 100644
> --- a/hw/usb/dev-storage.c
> +++ b/hw/usb/dev-storage.c
> @@ -664,7 +664,7 @@ static USBDevice *usb_msd_init(USBBus *bus, const char *filename)
>          return NULL;
>      }
>      if (qdev_prop_set_drive(&dev->qdev, "drive", dinfo->bdrv) < 0) {
> -        qdev_free(&dev->qdev);
> +        object_delete(OBJECT(dev));
>          return NULL;
>      }
>      if (qdev_init(&dev->qdev) < 0)
> diff --git a/hw/usb/host-linux.c b/hw/usb/host-linux.c
> index aa77b77..a0417fc 100644
> --- a/hw/usb/host-linux.c
> +++ b/hw/usb/host-linux.c
> @@ -1584,7 +1584,7 @@ USBDevice *usb_host_device_open(USBBus *bus, const char *devname)
>      return dev;
>  
>  fail:
> -    qdev_free(&dev->qdev);
> +    object_delete(OBJECT(dev));
>      return NULL;
>  }
>  
> diff --git a/hw/xen_platform.c b/hw/xen_platform.c
> index a54e7a2..d56f3e5 100644
> --- a/hw/xen_platform.c
> +++ b/hw/xen_platform.c
> @@ -89,7 +89,7 @@ static void unplug_nic(PCIBus *b, PCIDevice *d, void *o)
>      if (pci_get_word(d->config + PCI_CLASS_DEVICE) ==
>              PCI_CLASS_NETWORK_ETHERNET
>              && strcmp(d->name, "xen-pci-passthrough") != 0) {
> -        qdev_free(&d->qdev);
> +        object_delete(OBJECT(d));
>      }
>  }
>  
> 

  reply	other threads:[~2012-11-26  7:21 UTC|newest]

Thread overview: 48+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-26  0:12 [Qemu-devel] [RFC 00/34] QOM realize, device-only plus ISA conversion Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [PATCH 01/34] qdev: Eliminate qdev_free() in favor of QOM Andreas Färber
2012-11-26  0:12   ` Andreas Färber
2012-11-26  7:20   ` Paolo Bonzini [this message]
2012-11-26  7:20     ` Paolo Bonzini
2012-11-26 11:52     ` [Qemu-devel] " Andreas Färber
2012-11-26 12:04       ` Paolo Bonzini
2012-11-26  0:12 ` [Qemu-devel] [RFC 02/34] qbus: QOM'ify qbus_realize() Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 03/34] qdev: Fold state enum into bool realized Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 04/34] qdev: Prepare "realized" property Andreas Färber
2012-12-12 14:29   ` Eduardo Habkost
2012-12-12 16:51     ` Andreas Färber
2012-12-12 18:16       ` Eduardo Habkost
2012-12-12 18:25         ` Andreas Färber
2012-12-12 18:44           ` Eduardo Habkost
2012-11-26  0:12 ` [Qemu-devel] [RFC 05/34] isa: Split off instance_init for ISADevice Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 06/34] applesmc: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 07/34] cirrus_vga: QOM'ify ISA Cirrus VGA Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 08/34] debugcon: QOM'ify ISA debug console Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 09/34] fdc: QOM'ify ISA floppy controller Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 10/34] i82374: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [PATCH 11/34] i8259: Fix PIC_COMMON() macro Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 12/34] i8259: QOM cleanups Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 13/34] ide: QOM'ify ISA IDE Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 14/34] m48t59: QOM'ify ISA M48T59 NVRAM Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 15/34] mc146818rtc: QOM'ify Andreas Färber
2013-04-22 15:42   ` Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 16/34] ne2000-isa: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 17/34] parallel: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 18/34] pc: QOM'ify port 92 Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 19/34] pckbd: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 20/34] pcspk: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 21/34] sb16: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 22/34] serial: QOM'ify ISA serial Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 23/34] sga: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 24/34] vga-isa: QOM'ify ISA VGA Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 25/34] vmmouse: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 26/34] vmport: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 27/34] wdt_ib700: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 28/34] isa: Use realizefn for ISADevice Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 29/34] i8254: QOM'ify Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 30/34] kvm/i8254: QOM'ify some more Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 31/34] i8254: Convert PITCommonState to QOM realizefn Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 32/34] i8259: QOM'ify some more Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 33/34] kvm/i8259: " Andreas Färber
2012-11-26  0:12 ` [Qemu-devel] [RFC 34/34] i8259: Convert PICCommonState to use QOM realizefn Andreas Färber
2012-12-04 22:19 ` [Qemu-devel] [RFC 00/34] QOM realize, device-only plus ISA conversion Andreas Färber
2013-01-02 14:48 ` Anthony Liguori

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=50B3185A.3080005@redhat.com \
    --to=pbonzini@redhat.com \
    --cc=afaerber@suse.de \
    --cc=anthony@codemonkey.ws \
    --cc=mst@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=stefano.stabellini@eu.citrix.com \
    --cc=xen-devel@lists.xensource.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.