Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 5fba13b5 authored by Michael S. Tsirkin's avatar Michael S. Tsirkin
Browse files

vhost: replace % with & on data path



We know vring num is a power of 2, so use &
to mask the high bits.

Signed-off-by: default avatarMichael S. Tsirkin <mst@redhat.com>
parent 55564a02
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -1369,7 +1369,7 @@ int vhost_get_vq_desc(struct vhost_virtqueue *vq,
	/* Grab the next descriptor number they're advertising, and increment
	 * the index we've seen. */
	if (unlikely(__get_user(ring_head,
				&vq->avail->ring[last_avail_idx % vq->num]))) {
				&vq->avail->ring[last_avail_idx & (vq->num - 1)]))) {
		vq_err(vq, "Failed to read head: idx %d address %p\n",
		       last_avail_idx,
		       &vq->avail->ring[last_avail_idx % vq->num]);
@@ -1489,7 +1489,7 @@ static int __vhost_add_used_n(struct vhost_virtqueue *vq,
	u16 old, new;
	int start;

	start = vq->last_used_idx % vq->num;
	start = vq->last_used_idx & (vq->num - 1);
	used = vq->used->ring + start;
	if (count == 1) {
		if (__put_user(heads[0].id, &used->id)) {
@@ -1531,7 +1531,7 @@ int vhost_add_used_n(struct vhost_virtqueue *vq, struct vring_used_elem *heads,
{
	int start, n, r;

	start = vq->last_used_idx % vq->num;
	start = vq->last_used_idx & (vq->num - 1);
	n = vq->num - start;
	if (n < count) {
		r = __vhost_add_used_n(vq, heads, n);