From b1e09246ee961a67a301dd0591a2919cd9b5bab3 Mon Sep 17 00:00:00 2001
From: Ming Lei <ming.lei@canonical.com>
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: qemu-stable@nongnu.org
Cc: Anthony Liguori <aliguori@amazon.com>
Cc: "Michael S. Tsirkin" <mst@redhat.com>
Cc: Paolo Bonzini <pbonzini@redhat.com>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
---
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(-)
@@ -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(),
};
@@ -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);
@@ -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(),
};
@@ -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