virtio: make virtqueue_add_buf() returning 0 on success, not capacity.

Now noone relies on this behavior, we simplify virtqueue_add_buf() so it
return 0 or -errno.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
This commit is contained in:
Rusty Russell 2012-10-16 23:56:15 +10:30
parent 49e86f1686
commit 98e8c6bc66
1 changed files with 2 additions and 5 deletions

View File

@ -188,10 +188,7 @@ static int vring_add_indirect(struct vring_virtqueue *vq,
* Caller must ensure we don't call this with other virtqueue operations * Caller must ensure we don't call this with other virtqueue operations
* at the same time (except where noted). * at the same time (except where noted).
* *
* Returns remaining capacity of queue or a negative error * Returns zero or a negative error (ie. ENOSPC, ENOMEM).
* (ie. ENOSPC). Note that it only really makes sense to treat all
* positive return values as "available": indirect buffers mean that
* we can put an entire sg[] array inside a single queue entry.
*/ */
int virtqueue_add_buf(struct virtqueue *_vq, int virtqueue_add_buf(struct virtqueue *_vq,
struct scatterlist sg[], struct scatterlist sg[],
@ -291,7 +288,7 @@ add_head:
pr_debug("Added buffer head %i to %p\n", head, vq); pr_debug("Added buffer head %i to %p\n", head, vq);
END_USE(vq); END_USE(vq);
return vq->vq.num_free; return 0;
} }
EXPORT_SYMBOL_GPL(virtqueue_add_buf); EXPORT_SYMBOL_GPL(virtqueue_add_buf);