On Tue, 17 Jun 2014 09:07:41 +0200 Cornelia Huck <cornelia.h...@de.ibm.com> wrote:
> On Tue, 17 Jun 2014 10:44:11 +0800 > Ming Lei <ming....@canonical.com> wrote: > > > On Tue, Jun 17, 2014 at 12:04 AM, Cornelia Huck > > <cornelia.h...@de.ibm.com> wrote: > > > On Mon, 16 Jun 2014 23:40:50 +0800 > > > Ming Lei <ming....@canonical.com> wrote: > > > > > >> The two common virtio features can be defined per bus, so move all > > >> into virtio-s390 class device to make code more clean. > > >> > > >> Suggested-by: Paolo Bonzini <pbonz...@redhat.com> > > >> Signed-off-by: Ming Lei <ming....@canonical.com> > > >> --- > > >> hw/s390x/s390-virtio-bus.c | 15 ++++++--------- > > >> 1 file changed, 6 insertions(+), 9 deletions(-) > > > > > > This one breaks for me: > > > > > > qemu-system-s390x: -device > > > virtio-blk-s390,scsi=off,config-wce=off,drive=drive-virtio-disk0,id=virtio-disk0,bootindex=1: > > > Property '.scsi' not found > > > > > >> > > >> diff --git a/hw/s390x/s390-virtio-bus.c b/hw/s390x/s390-virtio-bus.c > > >> index 9c71afa..ab9758e 100644 > > >> --- a/hw/s390x/s390-virtio-bus.c > > >> +++ b/hw/s390x/s390-virtio-bus.c > > >> @@ -526,18 +526,11 @@ static const TypeInfo s390_virtio_net = { > > >> .class_init = s390_virtio_net_class_init, > > >> }; > > >> > > >> -static Property s390_virtio_blk_properties[] = { > > >> - DEFINE_VIRTIO_BLK_PROPERTIES(VirtIOBlkS390, blk), > > >> - DEFINE_PROP_END_OF_LIST(), > > >> -}; > > >> - > > >> static void s390_virtio_blk_class_init(ObjectClass *klass, void *data) > > >> { > > >> - DeviceClass *dc = DEVICE_CLASS(klass); > > >> VirtIOS390DeviceClass *k = VIRTIO_S390_DEVICE_CLASS(klass); > > >> > > >> k->init = s390_virtio_blk_init; > > >> - dc->props = s390_virtio_blk_properties; > > > > > > ...which is probably because you removed the block properties here. > > > > You are right, DEFINE_VIRTIO_BLK_PROPERTIES() should have been > > kept. > > > > Could you test attached patch? > > > Hm, with the attached patch qemu starts, but the guest will not come up > (same commandline + kernel comes up fine on master). Let me dig around > a bit. And the winner is: event_idx s390-virtio wants event_idx=false or we can't get I/O through. I guess we can't use DEFINE_VIRTIO_COMMON_FEATURES for this transport. (Probably nobody tested virtio-rng and vhost-scsi on this transport, either :)