X-Git-Url: http://www.pilppa.org/gitweb/gitweb.cgi?a=blobdiff_plain;f=drivers%2Fvirtio%2Fvirtio_ring.c;h=21d9a62767afb13e557b533852ca9827bb28cb18;hb=44653eae1407f79dff6f52fcf594ae84cb165ec4;hp=72bf8bc090142f02a9065c0ff0448299a5e9a2e7;hpb=674bfc23c585b34c42263d73fb51710d49762a23;p=linux-2.6-omap-h63xx.git diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index 72bf8bc0901..21d9a62767a 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c @@ -87,8 +87,11 @@ static int vring_add_buf(struct virtqueue *_vq, if (vq->num_free < out + in) { pr_debug("Can't add buf len %i - avail = %i\n", out + in, vq->num_free); - /* We notify *even if* VRING_USED_F_NO_NOTIFY is set here. */ - vq->notify(&vq->vq); + /* FIXME: for historical reasons, we force a notify here if + * there are outgoing parts to the buffer. Presumably the + * host should service the ring ASAP. */ + if (out) + vq->notify(&vq->vq); END_USE(vq); return -ENOSPC; }