Ricardo CaƱuelo
2022-Aug-30 09:13 UTC
[PATCH v14 00/42] virtio pci support VIRTIO_F_RING_RESET
Hi Xuan,
Patches 24 (virtio_ring: introduce virtqueue_resize())
and 28 (virtio_ring: struct virtqueue introduce reset)
break the tools/virtio build:
../../drivers/virtio/virtio_ring.c: In function ?vring_create_virtqueue_packed?:
../../drivers/virtio/virtio_ring.c:1999:8: error: ?struct virtqueue? has no
member named ?reset?
1999 | vq->vq.reset = false;
| ^
../../drivers/virtio/virtio_ring.c: In function ?__vring_new_virtqueue?:
../../drivers/virtio/virtio_ring.c:2493:8: error: ?struct virtqueue? has no
member named ?reset?
2493 | vq->vq.reset = false;
| ^
../../drivers/virtio/virtio_ring.c: In function ?virtqueue_resize?:
../../drivers/virtio/virtio_ring.c:2587:18: error: ?struct virtqueue? has no
member named ?num_max?
2587 | if (num > vq->vq.num_max)
| ^
../../drivers/virtio/virtio_ring.c:2596:11: error: ?struct virtio_device? has no
member named ?config?
2596 | if (!vdev->config->disable_vq_and_reset)
| ^~
../../drivers/virtio/virtio_ring.c:2599:11: error: ?struct virtio_device? has no
member named ?config?
2599 | if (!vdev->config->enable_vq_after_reset)
| ^~
../../drivers/virtio/virtio_ring.c:2602:12: error: ?struct virtio_device? has no
member named ?config?
2602 | err = vdev->config->disable_vq_and_reset(_vq);
| ^~
../../drivers/virtio/virtio_ring.c:2614:10: error: ?struct virtio_device? has no
member named ?config?
2614 | if (vdev->config->enable_vq_after_reset(_vq))
| ^~
make: *** [<builtin>: virtio_ring.o] Error 1
@Michael,
are changes in virtio code supposed to keep the tests stable or are the
tests maintained separately?
Cheers,
Ricardo
On Tue, 30 Aug 2022 11:13:34 +0200, "Ricardo Ca?uelo" <ricardo.canuelo at collabora.com> wrote:> Hi Xuan, > > Patches 24 (virtio_ring: introduce virtqueue_resize()) > and 28 (virtio_ring: struct virtqueue introduce reset) > break the tools/virtio build:Can you test this patch? diff --git a/tools/virtio/linux/virtio.h b/tools/virtio/linux/virtio.h index 363b98228301..5d3440f474dd 100644 --- a/tools/virtio/linux/virtio.h +++ b/tools/virtio/linux/virtio.h @@ -14,6 +14,7 @@ struct virtio_device { u64 features; struct list_head vqs; spinlock_t vqs_list_lock; + const struct virtio_config_ops *config; }; struct virtqueue { @@ -23,7 +24,9 @@ struct virtqueue { struct virtio_device *vdev; unsigned int index; unsigned int num_free; + unsigned int num_max; void *priv; + bool reset; }; /* Interfaces exported by virtio_ring. */ diff --git a/tools/virtio/linux/virtio_config.h b/tools/virtio/linux/virtio_config.h index f2640e505c4e..2a8a70e2a950 100644 --- a/tools/virtio/linux/virtio_config.h +++ b/tools/virtio/linux/virtio_config.h @@ -3,6 +3,11 @@ #include <linux/virtio.h> #include <uapi/linux/virtio_config.h> +struct virtio_config_ops { + int (*disable_vq_and_reset)(struct virtqueue *vq); + int (*enable_vq_after_reset)(struct virtqueue *vq); +}; + /* * __virtio_test_bit - helper to test feature bits. For use by transports. * Devices should normally use virtio_has_feature,