X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=drivers%2Fvirtio%2Fvirtio_ring.c;h=f536005807269728f3285f7bbf6f176cd790e5c2;hb=ff830b8e5f999d1ccbd0282a666520f0b557daa4;hp=a882f2606515796334e403baa411ebcbe45c592a;hpb=71c4c8b7c3bdeccef4f478c643a9ff382ec07241;p=karo-tx-linux.git diff --git a/drivers/virtio/virtio_ring.c b/drivers/virtio/virtio_ring.c index a882f2606515..f53600580726 100644 --- a/drivers/virtio/virtio_ring.c +++ b/drivers/virtio/virtio_ring.c @@ -208,7 +208,11 @@ add_head: pr_debug("Added buffer head %i to %p\n", head, vq); END_USE(vq); - return 0; + + /* If we're indirect, we can fit many (assuming not OOM). */ + if (vq->indirect) + return vq->num_free ? vq->vring.num : 0; + return vq->num_free; } static void vring_kick(struct virtqueue *_vq)