On 15/05/2015 09:03, Fam Zheng wrote: > On Fri, 05/15 08:50, Paolo Bonzini wrote: >> >> >> On 15/05/2015 08:04, Fam Zheng wrote: >>> @@ -111,6 +111,10 @@ static void >>> virtio_scsi_iothread_handle_ctrl(EventNotifier *notifier) >>> VirtIOSCSI *s = VIRTIO_SCSI(vring->parent); >>> VirtIOSCSIReq *req; >>> >>> + if (s->pause_counter) { >>> + virtio_scsi_stop_ioeventfd(s); >>> + return; >>> + } >>> event_notifier_test_and_clear(notifier); >>> while ((req = virtio_scsi_pop_req_vring(s, vring))) { >>> virtio_scsi_handle_ctrl_req(s, req); >>> @@ -124,6 +128,10 @@ static void >>> virtio_scsi_iothread_handle_event(EventNotifier *notifier) >>> VirtIOSCSI *s = vring->parent; >>> VirtIODevice *vdev = VIRTIO_DEVICE(s); >>> >>> + if (s->pause_counter) { >>> + virtio_scsi_stop_ioeventfd(s); >>> + return; >>> + } >>> event_notifier_test_and_clear(notifier); >>> >>> if (!(vdev->status & VIRTIO_CONFIG_S_DRIVER_OK)) { >> >> Why are these needed? > > Not strictly. I think it's something like an "assert(!s->pause_counter)" but > said gently.
Why be gentle? :) Paolo