@samitouri / QOSamiQemu / commits / 3fbef0689a

vhost: rename vring pointer fields to reflect user addresses

Rename vq->desc/avail/used to vq->desc_user/avail_user/used_user to clearly indicate these fields contain user space addresses, not physical addresses. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@yandex-team.ru> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Based-on: <20260206095258.894504-1-vsementsov@yandex-team.ru> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Message-Id: <20260420202032.714884-9-vsementsov@yandex-team.ru>

Vladimir Sementsov-Ogievskiy committed Apr 20, 2026 at 23:20 UTC 3fbef0689a3cde55efce72a3f6333031a3149f69
2 files changed +22 -21
hw/virtio/vhost.c
+19 -18
@@ -489,11 +489,11 @@ static void vhost_vrings_unmap(struct vhost_dev *dev,
489 return;
490 }
491
492 - vhost_memory_unmap(dev, &vq->used, vq->used_size, touched,
492 + vhost_memory_unmap(dev, &vq->used_user, vq->used_size, touched,
493 touched ? vq->used_size : 0);
494 - vhost_memory_unmap(dev, &vq->avail, vq->avail_size, 0,
494 + vhost_memory_unmap(dev, &vq->avail_user, vq->avail_size, 0,
495 touched ? vq->avail_size : 0);
496 - vhost_memory_unmap(dev, &vq->desc, vq->desc_size, 0,
496 + vhost_memory_unmap(dev, &vq->desc_user, vq->desc_size, 0,
497 touched ? vq->desc_size : 0);
498 }
499
@@ -504,13 +504,13 @@ static int vhost_vrings_map(struct vhost_dev *dev,
504 {
505 vq->desc_size = virtio_queue_get_desc_size(vdev, idx);
506 vq->desc_phys = virtio_queue_get_desc_addr(vdev, idx);
507 - vq->desc = NULL;
507 + vq->desc_user = NULL;
508 vq->avail_size = virtio_queue_get_avail_size(vdev, idx);
509 vq->avail_phys = virtio_queue_get_avail_addr(vdev, idx);
510 - vq->avail = NULL;
510 + vq->avail_user = NULL;
511 vq->used_size = virtio_queue_get_used_size(vdev, idx);
512 vq->used_phys = virtio_queue_get_used_addr(vdev, idx);
513 - vq->used = NULL;
513 + vq->used_user = NULL;
514
515 if (vq->desc_phys == 0) {
516 /* Queue might not be ready for start */
@@ -521,16 +521,17 @@ static int vhost_vrings_map(struct vhost_dev *dev,
521 return 1;
522 }
523
524 - vq->desc = vhost_memory_map(dev, vq->desc_phys, vq->desc_size, false);
525 - if (!vq->desc) {
524 + vq->desc_user = vhost_memory_map(dev, vq->desc_phys, vq->desc_size, false);
525 + if (!vq->desc_user) {
526 goto fail;
527 }
528 - vq->avail = vhost_memory_map(dev, vq->avail_phys, vq->avail_size, false);
529 - if (!vq->avail) {
528 + vq->avail_user = vhost_memory_map(dev, vq->avail_phys, vq->avail_size,
529 + false);
530 + if (!vq->avail_user) {
531 goto fail;
532 }
532 - vq->used = vhost_memory_map(dev, vq->used_phys, vq->used_size, true);
533 - if (!vq->used) {
533 + vq->used_user = vhost_memory_map(dev, vq->used_phys, vq->used_size, true);
534 + if (!vq->used_user) {
535 goto fail;
536 }
537
@@ -594,7 +595,7 @@ static int vhost_verify_ring_mappings(struct vhost_dev *dev,
595
596 j = 0;
597 r = vhost_verify_ring_part_mapping(
597 - vq->desc, vq->desc_phys, vq->desc_size,
598 + vq->desc_user, vq->desc_phys, vq->desc_size,
599 reg_hva, reg_gpa, reg_size);
600 if (r) {
601 break;
@@ -602,7 +603,7 @@ static int vhost_verify_ring_mappings(struct vhost_dev *dev,
603
604 j++;
605 r = vhost_verify_ring_part_mapping(
605 - vq->avail, vq->avail_phys, vq->avail_size,
606 + vq->avail_user, vq->avail_phys, vq->avail_size,
607 reg_hva, reg_gpa, reg_size);
608 if (r) {
609 break;
@@ -610,7 +611,7 @@ static int vhost_verify_ring_mappings(struct vhost_dev *dev,
611
612 j++;
613 r = vhost_verify_ring_part_mapping(
613 - vq->used, vq->used_phys, vq->used_size,
614 + vq->used_user, vq->used_phys, vq->used_size,
615 reg_hva, reg_gpa, reg_size);
616 if (r) {
617 break;
@@ -1106,9 +1107,9 @@ static int vhost_virtqueue_set_addr(struct vhost_dev *dev,
1107 addr.avail_user_addr = (uint64_t)(unsigned long)vq->avail_phys;
1108 addr.used_user_addr = (uint64_t)(unsigned long)vq->used_phys;
1109 } else {
1109 - addr.desc_user_addr = (uint64_t)(unsigned long)vq->desc;
1110 - addr.avail_user_addr = (uint64_t)(unsigned long)vq->avail;
1111 - addr.used_user_addr = (uint64_t)(unsigned long)vq->used;
1110 + addr.desc_user_addr = (uint64_t)(unsigned long)vq->desc_user;
1111 + addr.avail_user_addr = (uint64_t)(unsigned long)vq->avail_user;
1112 + addr.used_user_addr = (uint64_t)(unsigned long)vq->used_user;
1113 }
1114 addr.index = idx;
1115 addr.log_guest_addr = vq->used_phys;
include/hw/virtio/vhost.h
+3 -3
@@ -24,9 +24,9 @@ struct vhost_inflight {
24 struct vhost_virtqueue {
25 int kick;
26 int call;
27 - void *desc;
28 - void *avail;
29 - void *used;
27 + void *desc_user;
28 + void *avail_user;
29 + void *used_user;
30 int num;
31 unsigned long long desc_phys;
32 unsigned desc_size;