From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:51831) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VDrVK-00042K-LS for qemu-devel@nongnu.org; Mon, 26 Aug 2013 03:46:34 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VDrV9-0000TU-EM for qemu-devel@nongnu.org; Mon, 26 Aug 2013 03:46:26 -0400 Received: from e28smtp04.in.ibm.com ([122.248.162.4]:38224) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VDrV8-0000Sw-FK for qemu-devel@nongnu.org; Mon, 26 Aug 2013 03:46:15 -0400 Received: from /spool/local by e28smtp04.in.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Mon, 26 Aug 2013 13:08:04 +0530 Message-ID: <521B0777.70801@linux.vnet.ibm.com> Date: Mon, 26 Aug 2013 15:44:55 +0800 From: Wenchao Xia MIME-Version: 1.0 References: <1377302436-25193-1-git-send-email-afaerber@suse.de> <1377302436-25193-13-git-send-email-afaerber@suse.de> In-Reply-To: <1377302436-25193-13-git-send-email-afaerber@suse.de> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit Subject: Re: [Qemu-devel] [PATCH 12/16] qdev: Pass size to qbus_create_inplace() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: =?UTF-8?B?QW5kcmVhcyBGw6RyYmVy?= Cc: Kevin Wolf , peter.maydell@linaro.org, "Michael S. Tsirkin" , Alexander Graf , qemu-devel@nongnu.org, Amit Shah , Igor Mammedov , New World , Gerd Hoffmann , anthony@codemonkey.ws, Paolo Bonzini , Cornelia Huck , "Vassili Karpov (malc)" , Richard Henderson 于 2013-8-24 8:00, Andreas Färber 写道: > To be passed to object_initialize(). > > Since commit 39355c3826f5d9a2eb1ce3dc9b4cdd68893769d6 the argument is > void*, so drop some superfluous (BusState *) casts or direct parent > field usages. > > Signed-off-by: Andreas Färber > --- > hw/audio/intel-hda.c | 2 +- > hw/char/ipack.c | 2 +- > hw/char/virtio-serial-bus.c | 4 ++-- > hw/core/qdev.c | 2 +- > hw/core/sysbus.c | 4 ++-- > hw/cpu/icc_bus.c | 3 ++- > hw/ide/qdev.c | 2 +- > hw/misc/macio/cuda.c | 4 ++-- > hw/pci/pci.c | 2 +- > hw/pci/pci_bridge.c | 3 ++- > hw/s390x/event-facility.c | 4 ++-- > hw/s390x/s390-virtio-bus.c | 4 ++-- > hw/s390x/virtio-ccw.c | 4 ++-- > hw/scsi/scsi-bus.c | 2 +- > hw/usb/bus.c | 2 +- > hw/usb/dev-smartcard-reader.c | 3 ++- > hw/virtio/virtio-mmio.c | 2 +- > hw/virtio/virtio-pci.c | 2 +- > include/hw/qdev-core.h | 2 +- > 19 files changed, 28 insertions(+), 25 deletions(-) > > diff --git a/hw/audio/intel-hda.c b/hw/audio/intel-hda.c > index 9c2fa88..8800dfe 100644 > --- a/hw/audio/intel-hda.c > +++ b/hw/audio/intel-hda.c > @@ -44,7 +44,7 @@ void hda_codec_bus_init(DeviceState *dev, HDACodecBus *bus, size_t bus_size, > hda_codec_response_func response, > hda_codec_xfer_func xfer) > { > - qbus_create_inplace(&bus->qbus, TYPE_HDA_BUS, dev, NULL); > + qbus_create_inplace(bus, bus_size, TYPE_HDA_BUS, dev, NULL); > bus->response = response; > bus->xfer = xfer; > } > diff --git a/hw/char/ipack.c b/hw/char/ipack.c > index 5fb7073..b7e45be 100644 > --- a/hw/char/ipack.c > +++ b/hw/char/ipack.c > @@ -29,7 +29,7 @@ void ipack_bus_new_inplace(IPackBus *bus, size_t bus_size, > const char *name, uint8_t n_slots, > qemu_irq_handler handler) > { > - qbus_create_inplace(&bus->qbus, TYPE_IPACK_BUS, parent, name); > + qbus_create_inplace(bus, bus_size, TYPE_IPACK_BUS, parent, name); > bus->n_slots = n_slots; > bus->set_irq = handler; > } > diff --git a/hw/char/virtio-serial-bus.c b/hw/char/virtio-serial-bus.c > index da417c7..d90fc2a 100644 > --- a/hw/char/virtio-serial-bus.c > +++ b/hw/char/virtio-serial-bus.c > @@ -911,8 +911,8 @@ static int virtio_serial_device_init(VirtIODevice *vdev) > sizeof(struct virtio_console_config)); > > /* Spawn a new virtio-serial bus on which the ports will ride as devices */ > - qbus_create_inplace(&vser->bus.qbus, TYPE_VIRTIO_SERIAL_BUS, qdev, > - vdev->bus_name); > + qbus_create_inplace(&vser->bus, sizeof(vser->bus), TYPE_VIRTIO_SERIAL_BUS, > + qdev, vdev->bus_name); > vser->bus.qbus.allow_hotplug = 1; > vser->bus.vser = vser; > QTAILQ_INIT(&vser->ports); > diff --git a/hw/core/qdev.c b/hw/core/qdev.c > index 758de9f..81874da 100644 > --- a/hw/core/qdev.c > +++ b/hw/core/qdev.c > @@ -470,7 +470,7 @@ static void bus_unparent(Object *obj) > } > } > > -void qbus_create_inplace(void *bus, const char *typename, > +void qbus_create_inplace(void *bus, size_t size, const char *typename, > DeviceState *parent, const char *name) > { > object_initialize(bus, typename); > diff --git a/hw/core/sysbus.c b/hw/core/sysbus.c > index 9004d8c..b84cd4a 100644 > --- a/hw/core/sysbus.c > +++ b/hw/core/sysbus.c > @@ -276,8 +276,8 @@ static void main_system_bus_create(void) > /* assign main_system_bus before qbus_create_inplace() > * in order to make "if (bus != sysbus_get_default())" work */ > main_system_bus = g_malloc0(system_bus_info.instance_size); > - qbus_create_inplace(main_system_bus, TYPE_SYSTEM_BUS, NULL, > - "main-system-bus"); > + qbus_create_inplace(main_system_bus, system_bus_info.instance_size, > + TYPE_SYSTEM_BUS, NULL, "main-system-bus"); > OBJECT(main_system_bus)->free = g_free; > object_property_add_child(container_get(qdev_get_machine(), > "/unattached"), > diff --git a/hw/cpu/icc_bus.c b/hw/cpu/icc_bus.c > index 8748cc5..9a4ea7e 100644 > --- a/hw/cpu/icc_bus.c > +++ b/hw/cpu/icc_bus.c > @@ -90,7 +90,8 @@ static void icc_bridge_init(Object *obj) > ICCBridgeState *s = ICC_BRIGDE(obj); > SysBusDevice *sb = SYS_BUS_DEVICE(obj); > > - qbus_create_inplace(&s->icc_bus, TYPE_ICC_BUS, DEVICE(s), "icc"); > + qbus_create_inplace(&s->icc_bus, sizeof(s->icc_bus), TYPE_ICC_BUS, > + DEVICE(s), "icc"); > > /* Do not change order of registering regions, > * APIC must be first registered region, board maps it by 0 index > diff --git a/hw/ide/qdev.c b/hw/ide/qdev.c > index 8be76ab..18c4b7e 100644 > --- a/hw/ide/qdev.c > +++ b/hw/ide/qdev.c > @@ -50,7 +50,7 @@ static const TypeInfo ide_bus_info = { > void ide_bus_new(IDEBus *idebus, size_t idebus_size, DeviceState *dev, > int bus_id, int max_units) > { > - qbus_create_inplace(&idebus->qbus, TYPE_IDE_BUS, dev, NULL); > + qbus_create_inplace(idebus, idebus_size, TYPE_IDE_BUS, dev, NULL); > idebus->bus_id = bus_id; > idebus->max_units = max_units; > } > diff --git a/hw/misc/macio/cuda.c b/hw/misc/macio/cuda.c > index c0fd7da..8e41459 100644 > --- a/hw/misc/macio/cuda.c > +++ b/hw/misc/macio/cuda.c > @@ -711,8 +711,8 @@ static void cuda_initfn(Object *obj) > s->timers[i].index = i; > } > > - qbus_create_inplace((BusState *)&s->adb_bus, TYPE_ADB_BUS, DEVICE(obj), > - "adb.0"); > + qbus_create_inplace(&s->adb_bus, sizeof(s->adb_bus), TYPE_ADB_BUS, > + DEVICE(obj), "adb.0"); > } > > static void cuda_class_init(ObjectClass *oc, void *data) > diff --git a/hw/pci/pci.c b/hw/pci/pci.c > index 397555c..e688f4a 100644 > --- a/hw/pci/pci.c > +++ b/hw/pci/pci.c > @@ -318,7 +318,7 @@ void pci_bus_new_inplace(PCIBus *bus, size_t bus_size, DeviceState *parent, > MemoryRegion *address_space_io, > uint8_t devfn_min, const char *typename) > { > - qbus_create_inplace(bus, typename, parent, name); > + qbus_create_inplace(bus, bus_size, typename, parent, name); > pci_bus_init(bus, parent, name, address_space_mem, > address_space_io, devfn_min); > } > diff --git a/hw/pci/pci_bridge.c b/hw/pci/pci_bridge.c > index a90671d..e6b22b8 100644 > --- a/hw/pci/pci_bridge.c > +++ b/hw/pci/pci_bridge.c > @@ -367,7 +367,8 @@ int pci_bridge_initfn(PCIDevice *dev, const char *typename) > br->bus_name = dev->qdev.id; > } > > - qbus_create_inplace(&sec_bus->qbus, typename, &dev->qdev, br->bus_name); > + qbus_create_inplace(sec_bus, sizeof(br->sec_bus), typename, DEVICE(dev), wouldn't qbus_create_inplace(sec_bus, sizeof(*sec_bus), typename, DEVICE(dev), looks more straight? > + br->bus_name); > sec_bus->parent_dev = dev; > sec_bus->map_irq = br->map_irq ? br->map_irq : pci_swizzle_map_irq_fn; > sec_bus->address_space_mem = &br->address_space_mem; > diff --git a/hw/s390x/event-facility.c b/hw/s390x/event-facility.c > index 0faade0..a3aceef 100644 > --- a/hw/s390x/event-facility.c > +++ b/hw/s390x/event-facility.c > @@ -324,8 +324,8 @@ static int init_event_facility(S390SCLPDevice *sdev) > sdev->event_pending = event_pending; > > /* Spawn a new sclp-events facility */ > - qbus_create_inplace(&event_facility->sbus.qbus, > - TYPE_SCLP_EVENTS_BUS, (DeviceState *)sdev, NULL); > + qbus_create_inplace(&event_facility->sbus, sizeof(event_facility->sbus), > + TYPE_SCLP_EVENTS_BUS, DEVICE(sdev), NULL); > event_facility->sbus.qbus.allow_hotplug = 0; > event_facility->qdev = (DeviceState *) sdev; > > diff --git a/hw/s390x/s390-virtio-bus.c b/hw/s390x/s390-virtio-bus.c > index 579adbc..e95b831 100644 > --- a/hw/s390x/s390-virtio-bus.c > +++ b/hw/s390x/s390-virtio-bus.c > @@ -699,8 +699,8 @@ static void virtio_s390_bus_new(VirtioBusState *bus, size_t bus_size, > BusState *qbus; > char virtio_bus_name[] = "virtio-bus"; > > - qbus_create_inplace((BusState *)bus, TYPE_VIRTIO_S390_BUS, qdev, > - virtio_bus_name); > + qbus_create_inplace((BusState *)bus, bus_size, TYPE_VIRTIO_S390_BUS, > + qdev, virtio_bus_name); > qbus = BUS(bus); > qbus->allow_hotplug = 1; > } > diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c > index 36cbf42..cf7075e 100644 > --- a/hw/s390x/virtio-ccw.c > +++ b/hw/s390x/virtio-ccw.c > @@ -1297,8 +1297,8 @@ static void virtio_ccw_bus_new(VirtioBusState *bus, size_t bus_size, > BusState *qbus; > char virtio_bus_name[] = "virtio-bus"; > > - qbus_create_inplace((BusState *)bus, TYPE_VIRTIO_CCW_BUS, qdev, > - virtio_bus_name); > + qbus_create_inplace((BusState *)bus, bus_size, TYPE_VIRTIO_CCW_BUS, > + qdev, virtio_bus_name); > qbus = BUS(bus); > qbus->allow_hotplug = 1; > } > diff --git a/hw/scsi/scsi-bus.c b/hw/scsi/scsi-bus.c > index 968bf23..5cd6137 100644 > --- a/hw/scsi/scsi-bus.c > +++ b/hw/scsi/scsi-bus.c > @@ -75,7 +75,7 @@ static void scsi_device_unit_attention_reported(SCSIDevice *s) > void scsi_bus_new(SCSIBus *bus, size_t bus_size, DeviceState *host, > const SCSIBusInfo *info, const char *bus_name) > { > - qbus_create_inplace(&bus->qbus, TYPE_SCSI_BUS, host, bus_name); > + qbus_create_inplace(bus, bus_size, TYPE_SCSI_BUS, host, bus_name); > bus->busnr = next_scsi_bus++; > bus->info = info; > bus->qbus.allow_hotplug = 1; > diff --git a/hw/usb/bus.c b/hw/usb/bus.c > index 6aee262..82ca6a1 100644 > --- a/hw/usb/bus.c > +++ b/hw/usb/bus.c > @@ -70,7 +70,7 @@ const VMStateDescription vmstate_usb_device = { > void usb_bus_new(USBBus *bus, size_t bus_size, > USBBusOps *ops, DeviceState *host) > { > - qbus_create_inplace(&bus->qbus, TYPE_USB_BUS, host, NULL); > + qbus_create_inplace(bus, bus_size, TYPE_USB_BUS, host, NULL); > bus->ops = ops; > bus->busnr = next_usb_bus++; > bus->qbus.allow_hotplug = 1; /* Yes, we can */ > diff --git a/hw/usb/dev-smartcard-reader.c b/hw/usb/dev-smartcard-reader.c > index 2233c54..8c7a61e 100644 > --- a/hw/usb/dev-smartcard-reader.c > +++ b/hw/usb/dev-smartcard-reader.c > @@ -1309,7 +1309,8 @@ static int ccid_initfn(USBDevice *dev) > > usb_desc_create_serial(dev); > usb_desc_init(dev); > - qbus_create_inplace(&s->bus.qbus, TYPE_CCID_BUS, &dev->qdev, NULL); > + qbus_create_inplace(&s->bus, sizeof(s->bus), TYPE_CCID_BUS, DEVICE(dev), > + NULL); > s->intr = usb_ep_get(dev, USB_TOKEN_IN, CCID_INT_IN_EP); > s->bus.qbus.allow_hotplug = 1; > s->card = NULL; > diff --git a/hw/virtio/virtio-mmio.c b/hw/virtio/virtio-mmio.c > index 692979e..29cf284 100644 > --- a/hw/virtio/virtio-mmio.c > +++ b/hw/virtio/virtio-mmio.c > @@ -392,7 +392,7 @@ static void virtio_mmio_bus_new(VirtioBusState *bus, size_t bus_size, > DeviceState *qdev = DEVICE(dev); > BusState *qbus; > > - qbus_create_inplace((BusState *)bus, TYPE_VIRTIO_MMIO_BUS, qdev, NULL); > + qbus_create_inplace(bus, bus_size, TYPE_VIRTIO_MMIO_BUS, qdev, NULL); > qbus = BUS(bus); > qbus->allow_hotplug = 0; > } > diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c > index 313723f..a9a1893 100644 > --- a/hw/virtio/virtio-pci.c > +++ b/hw/virtio/virtio-pci.c > @@ -1512,7 +1512,7 @@ static void virtio_pci_bus_new(VirtioBusState *bus, size_t bus_size, > BusState *qbus; > char virtio_bus_name[] = "virtio-bus"; > > - qbus_create_inplace((BusState *)bus, TYPE_VIRTIO_PCI_BUS, qdev, > + qbus_create_inplace(bus, bus_size, TYPE_VIRTIO_PCI_BUS, qdev, > virtio_bus_name); > qbus = BUS(bus); > qbus->allow_hotplug = 1; > diff --git a/include/hw/qdev-core.h b/include/hw/qdev-core.h > index 46972f4..a62f231 100644 > --- a/include/hw/qdev-core.h > +++ b/include/hw/qdev-core.h > @@ -264,7 +264,7 @@ DeviceState *qdev_find_recursive(BusState *bus, const char *id); > typedef int (qbus_walkerfn)(BusState *bus, void *opaque); > typedef int (qdev_walkerfn)(DeviceState *dev, void *opaque); > > -void qbus_create_inplace(void *bus, const char *typename, > +void qbus_create_inplace(void *bus, size_t size, const char *typename, > DeviceState *parent, const char *name); > BusState *qbus_create(const char *typename, DeviceState *parent, const char *name); > /* Returns > 0 if either devfn or busfn skip walk somewhere in cursion, > -- Best Regards Wenchao Xia