diff options
Diffstat (limited to 'drivers/virtio')
-rw-r--r-- | drivers/virtio/virtio_ring.c | 7 |
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index 72bf8bc09014..21d9a62767af 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, | |||
87 | if (vq->num_free < out + in) { | 87 | if (vq->num_free < out + in) { |
88 | pr_debug("Can't add buf len %i - avail = %i\n", | 88 | pr_debug("Can't add buf len %i - avail = %i\n", |
89 | out + in, vq->num_free); | 89 | out + in, vq->num_free); |
90 | /* We notify *even if* VRING_USED_F_NO_NOTIFY is set here. */ | 90 | /* FIXME: for historical reasons, we force a notify here if |
91 | vq->notify(&vq->vq); | 91 | * there are outgoing parts to the buffer. Presumably the |
92 | * host should service the ring ASAP. */ | ||
93 | if (out) | ||
94 | vq->notify(&vq->vq); | ||
92 | END_USE(vq); | 95 | END_USE(vq); |
93 | return -ENOSPC; | 96 | return -ENOSPC; |
94 | } | 97 | } |