From 619d7ae952bb61ec27ec21fe4a383a8d4dd4cd70 Mon Sep 17 00:00:00 2001 From: Paolo Bonzini Date: Tue, 12 Jun 2012 18:37:25 +0200 Subject: virtio-scsi: do not crash on adding buffers to the event queue The event queue is not supported yet and the handler does not have to do much anyway when buffers are added. However, the handler is called unconditionally by the virtio layer, and this results in a crash as soon as buffers are added to the event queue because we pass NULL. Reported-by: Bryan Venteicher Signed-off-by: Paolo Bonzini --- hw/virtio-scsi.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) (limited to 'hw') diff --git a/hw/virtio-scsi.c b/hw/virtio-scsi.c index e1a767ea78..0a5ac40e2f 100644 --- a/hw/virtio-scsi.c +++ b/hw/virtio-scsi.c @@ -405,6 +405,10 @@ static void virtio_scsi_handle_ctrl(VirtIODevice *vdev, VirtQueue *vq) } } +static void virtio_scsi_handle_event(VirtIODevice *vdev, VirtQueue *vq) +{ +} + static void virtio_scsi_command_complete(SCSIRequest *r, uint32_t status, size_t resid) { @@ -609,7 +613,7 @@ VirtIODevice *virtio_scsi_init(DeviceState *dev, VirtIOSCSIConf *proxyconf) s->ctrl_vq = virtio_add_queue(&s->vdev, VIRTIO_SCSI_VQ_SIZE, virtio_scsi_handle_ctrl); s->event_vq = virtio_add_queue(&s->vdev, VIRTIO_SCSI_VQ_SIZE, - NULL); + virtio_scsi_handle_event); for (i = 0; i < s->conf->num_queues; i++) { s->cmd_vqs[i] = virtio_add_queue(&s->vdev, VIRTIO_SCSI_VQ_SIZE, virtio_scsi_handle_cmd); -- cgit v1.2.3