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.
Fam