On Wed, 20 Mar 2013 10:00:01 +0100 fred.kon...@greensocs.com wrote: > From: KONRAD Frederic <fred.kon...@greensocs.com> > > The virtio-blk-x configuration is not in sync with virtio-blk configuration. > So this patch remove the virtio-blk-x configuration field, and use virtio-blk > one for setting the properties. > > This also remove a useless configuration copy in virtio_blk_device_init. > > Note that this is on top of "virtio-ccw queue as of 2013/03/20".
Seems to work on both s390-virtio and virtio-ccw (comes up and I can specify e.g. config-wce). info qtree still shows the properties for both virtio-blk-x and virtio-blk, but they are in sync now. > > Signed-off-by: KONRAD Frederic <fred.kon...@greensocs.com> Tested-by: Cornelia Huck <cornelia.h...@de.ibm.com> > --- > hw/s390x/s390-virtio-bus.c | 4 ++-- > hw/s390x/s390-virtio-bus.h | 1 - > hw/s390x/virtio-ccw.c | 4 ++-- > hw/s390x/virtio-ccw.h | 1 - > hw/virtio-blk.c | 7 ------- > hw/virtio-blk.h | 2 -- > hw/virtio-pci.c | 7 ++++--- > hw/virtio-pci.h | 1 - > 8 files changed, 8 insertions(+), 19 deletions(-) > > diff --git a/hw/s390x/s390-virtio-bus.c b/hw/s390x/s390-virtio-bus.c > index c5d5456..b6f9682 100644 > --- a/hw/s390x/s390-virtio-bus.c > +++ b/hw/s390x/s390-virtio-bus.c > @@ -166,7 +166,7 @@ static int s390_virtio_blk_init(VirtIOS390Device > *s390_dev) > { > VirtIOBlkS390 *dev = VIRTIO_BLK_S390(s390_dev); > DeviceState *vdev = DEVICE(&dev->vdev); > - virtio_blk_set_conf(vdev, &(dev->blk)); > + > qdev_set_parent_bus(vdev, BUS(&s390_dev->bus)); > if (qdev_init(vdev) < 0) { > return -1; > @@ -435,7 +435,7 @@ static const TypeInfo s390_virtio_net = { > }; > > static Property s390_virtio_blk_properties[] = { > - DEFINE_VIRTIO_BLK_PROPERTIES(VirtIOBlkS390, blk), > + DEFINE_VIRTIO_BLK_PROPERTIES(VirtIOBlkS390, vdev.blk), > DEFINE_PROP_END_OF_LIST(), > }; > > diff --git a/hw/s390x/s390-virtio-bus.h b/hw/s390x/s390-virtio-bus.h > index 1a63411..05347bc 100644 > --- a/hw/s390x/s390-virtio-bus.h > +++ b/hw/s390x/s390-virtio-bus.h > @@ -128,7 +128,6 @@ void s390_virtio_reset_idx(VirtIOS390Device *dev); > typedef struct VirtIOBlkS390 { > VirtIOS390Device parent_obj; > VirtIOBlock vdev; > - VirtIOBlkConf blk; > } VirtIOBlkS390; > > > diff --git a/hw/s390x/virtio-ccw.c b/hw/s390x/virtio-ccw.c > index 4c44b7e..4a10bd6 100644 > --- a/hw/s390x/virtio-ccw.c > +++ b/hw/s390x/virtio-ccw.c > @@ -574,7 +574,7 @@ static int virtio_ccw_blk_init(VirtioCcwDevice *ccw_dev) > { > VirtIOBlkCcw *dev = VIRTIO_BLK_CCW(ccw_dev); > DeviceState *vdev = DEVICE(&dev->vdev); > - virtio_blk_set_conf(vdev, &(dev->blk)); > + > qdev_set_parent_bus(vdev, BUS(&ccw_dev->bus)); > if (qdev_init(vdev) < 0) { > return -1; > @@ -757,7 +757,7 @@ static const TypeInfo virtio_ccw_net = { > static Property virtio_ccw_blk_properties[] = { > DEFINE_PROP_STRING("devno", VirtioCcwDevice, bus_id), > DEFINE_VIRTIO_BLK_FEATURES(VirtioCcwDevice, host_features[0]), > - DEFINE_VIRTIO_BLK_PROPERTIES(VirtIOBlkCcw, blk), > + DEFINE_VIRTIO_BLK_PROPERTIES(VirtIOBlkCcw, vdev.blk), > DEFINE_PROP_END_OF_LIST(), > }; > > diff --git a/hw/s390x/virtio-ccw.h b/hw/s390x/virtio-ccw.h > index 3993bc5..8f7c3a5 100644 > --- a/hw/s390x/virtio-ccw.h > +++ b/hw/s390x/virtio-ccw.h > @@ -102,7 +102,6 @@ typedef struct VirtualCssBus { > typedef struct VirtIOBlkCcw { > VirtioCcwDevice parent_obj; > VirtIOBlock vdev; > - VirtIOBlkConf blk; > } VirtIOBlkCcw; > > > diff --git a/hw/virtio-blk.c b/hw/virtio-blk.c > index f2143fd..0414a8a 100644 > --- a/hw/virtio-blk.c > +++ b/hw/virtio-blk.c > @@ -619,12 +619,6 @@ static const BlockDevOps virtio_block_ops = { > .resize_cb = virtio_blk_resize, > }; > > -void virtio_blk_set_conf(DeviceState *dev, VirtIOBlkConf *blk) > -{ > - VirtIOBlock *s = VIRTIO_BLK(dev); > - memcpy(&(s->blk), blk, sizeof(struct VirtIOBlkConf)); > -} > - > static int virtio_blk_device_init(VirtIODevice *vdev) > { > DeviceState *qdev = DEVICE(vdev); > @@ -656,7 +650,6 @@ static int virtio_blk_device_init(VirtIODevice *vdev) > vdev->reset = virtio_blk_reset; > s->bs = blk->conf.bs; > s->conf = &blk->conf; > - memcpy(&(s->blk), blk, sizeof(struct VirtIOBlkConf)); > s->rq = NULL; > s->sector_mask = (s->conf->logical_block_size / BDRV_SECTOR_SIZE) - 1; > > diff --git a/hw/virtio-blk.h b/hw/virtio-blk.h > index 8c6c78b..e228057 100644 > --- a/hw/virtio-blk.h > +++ b/hw/virtio-blk.h > @@ -148,6 +148,4 @@ typedef struct VirtIOBlock { > DEFINE_PROP_BIT("config-wce", _state, _field.config_wce, 0, true) > #endif /* __linux__ */ > > -void virtio_blk_set_conf(DeviceState *dev, VirtIOBlkConf *blk); > - > #endif > diff --git a/hw/virtio-pci.c b/hw/virtio-pci.c > index f3ece78..31a78de 100644 > --- a/hw/virtio-pci.c > +++ b/hw/virtio-pci.c > @@ -1405,10 +1405,11 @@ static Property virtio_blk_pci_properties[] = { > VIRTIO_PCI_FLAG_USE_IOEVENTFD_BIT, true), > DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, 2), > #ifdef CONFIG_VIRTIO_BLK_DATA_PLANE > - DEFINE_PROP_BIT("x-data-plane", VirtIOBlkPCI, blk.data_plane, 0, false), > + DEFINE_PROP_BIT("x-data-plane", VirtIOBlkPCI, vdev.blk.data_plane, 0, > + > false), > #endif > DEFINE_VIRTIO_BLK_FEATURES(VirtIOPCIProxy, host_features), > - DEFINE_VIRTIO_BLK_PROPERTIES(VirtIOBlkPCI, blk), > + DEFINE_VIRTIO_BLK_PROPERTIES(VirtIOBlkPCI, vdev.blk), > DEFINE_PROP_END_OF_LIST(), > }; > > @@ -1416,7 +1417,7 @@ static int virtio_blk_pci_init(VirtIOPCIProxy *vpci_dev) > { > VirtIOBlkPCI *dev = VIRTIO_BLK_PCI(vpci_dev); > DeviceState *vdev = DEVICE(&dev->vdev); > - virtio_blk_set_conf(vdev, &(dev->blk)); > + > qdev_set_parent_bus(vdev, BUS(&vpci_dev->bus)); > if (qdev_init(vdev) < 0) { > return -1; > diff --git a/hw/virtio-pci.h b/hw/virtio-pci.h > index a9dbfff..fd6bcb2 100644 > --- a/hw/virtio-pci.h > +++ b/hw/virtio-pci.h > @@ -100,7 +100,6 @@ struct VirtIOPCIProxy { > struct VirtIOBlkPCI { > VirtIOPCIProxy parent_obj; > VirtIOBlock vdev; > - VirtIOBlkConf blk; > }; > > void virtio_init_pci(VirtIOPCIProxy *proxy, VirtIODevice *vdev);