On Wed, Dec 21, 2011 at 1:00 AM, Minchan Kim <minchan@xxxxxxxxxx> wrote: > +static void virtblk_add_buf_wait(struct virtio_blk *vblk, > + struct virtblk_req *vbr, unsigned long out, unsigned long in) > +{ > + DEFINE_WAIT(wait); > + bool retry, notify; > + > + for (;;) { > + prepare_to_wait(&vblk->queue_wait, &wait, > + TASK_UNINTERRUPTIBLE); > + > + spin_lock_irq(&vblk->lock); > + if (virtqueue_add_buf(vblk->vq, vbr->sg, > + out, in, vbr) < 0) { > + retry = true; > + } else { > + retry = false; > + } > + notify = virtqueue_kick_prepare(vblk->vq); > + spin_unlock_irq(&vblk->lock); > + > + if (notify) virtblk_make_request() checks that the queue is not plugged. Do we need to do that here too? -- To unsubscribe from this list: send the line "unsubscribe kvm" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html