|
@@ -224,6 +224,9 @@ static void virtscsi_vq_done(struct virtio_scsi *vscsi,
|
|
|
virtqueue_disable_cb(vq);
|
|
|
while ((buf = virtqueue_get_buf(vq, &len)) != NULL)
|
|
|
fn(vscsi, buf);
|
|
|
+
|
|
|
+ if (unlikely(virtqueue_is_broken(vq)))
|
|
|
+ break;
|
|
|
} while (!virtqueue_enable_cb(vq));
|
|
|
spin_unlock_irqrestore(&virtscsi_vq->vq_lock, flags);
|
|
|
}
|