From b1e09246ee961a67a301dd0591a2919cd9b5bab3 Mon Sep 17 00:00:00 2001 From: Ming Lei Date: Wed, 18 Jun 2014 20:06:55 +0800 Subject: [PATCH] virtio-scsi: fix object check failure In case of vhost-scsi, the object type of VirtIODevice isn't VirtIOSCSI, so use the cast trick to fix the problem like in virtio_scsi_handle_cmd() Cc: address@hidden Cc: Anthony Liguori Cc: "Michael S. Tsirkin" Cc: Paolo Bonzini Signed-off-by: Ming Lei --- hw/scsi/vhost-scsi.c | 2 +- hw/scsi/virtio-scsi.c | 2 +- hw/virtio/virtio-pci.c | 2 +- include/hw/virtio/vhost-scsi.h | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/hw/scsi/vhost-scsi.c b/hw/scsi/vhost-scsi.c index 3983a5b..76985a7 100644 --- a/hw/scsi/vhost-scsi.c +++ b/hw/scsi/vhost-scsi.c @@ -257,7 +257,7 @@ static void vhost_scsi_unrealize(DeviceState *dev, Error **errp) } static Property vhost_scsi_properties[] = { - DEFINE_VHOST_SCSI_PROPERTIES(VHostSCSI, parent_obj.conf), + DEFINE_VHOST_SCSI_PROPERTIES(VHostSCSI, parent.parent_obj.conf), DEFINE_PROP_END_OF_LIST(), }; diff --git a/hw/scsi/virtio-scsi.c b/hw/scsi/virtio-scsi.c index b0d7517..13700f5 100644 --- a/hw/scsi/virtio-scsi.c +++ b/hw/scsi/virtio-scsi.c @@ -538,7 +538,7 @@ static void virtio_scsi_push_event(VirtIOSCSI *s, SCSIDevice *dev, static void virtio_scsi_handle_event(VirtIODevice *vdev, VirtQueue *vq) { - VirtIOSCSI *s = VIRTIO_SCSI(vdev); + VirtIOSCSI *s = (VirtIOSCSI *)vdev; if (s->events_dropped) { virtio_scsi_push_event(s, NULL, VIRTIO_SCSI_T_NO_EVENT, 0); diff --git a/hw/virtio/virtio-pci.c b/hw/virtio/virtio-pci.c index af2e1c3..b428898 100644 --- a/hw/virtio/virtio-pci.c +++ b/hw/virtio/virtio-pci.c @@ -1199,7 +1199,7 @@ static const TypeInfo virtio_scsi_pci_info = { static Property vhost_scsi_pci_properties[] = { DEFINE_PROP_UINT32("vectors", VirtIOPCIProxy, nvectors, DEV_NVECTORS_UNSPECIFIED), - DEFINE_VHOST_SCSI_PROPERTIES(VHostSCSIPCI, vdev.parent_obj.conf), + DEFINE_VHOST_SCSI_PROPERTIES(VHostSCSIPCI, vdev.parent.parent_obj.conf), DEFINE_PROP_END_OF_LIST(), }; diff --git a/include/hw/virtio/vhost-scsi.h b/include/hw/virtio/vhost-scsi.h index 85cc031..62fc820 100644 --- a/include/hw/virtio/vhost-scsi.h +++ b/include/hw/virtio/vhost-scsi.h @@ -55,7 +55,7 @@ enum vhost_scsi_vq_list { OBJECT_CHECK(VHostSCSI, (obj), TYPE_VHOST_SCSI) typedef struct VHostSCSI { - VirtIOSCSICommon parent_obj; + VirtIOSCSI parent; Error *migration_blocker; -- 1.7.9.5