Fix virtio test compilation failure caused by vq reset.
../../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
Signed-off-by: Xuan Zhuo <xuanzhuo at linux.alibaba.com>
---
tools/virtio/linux/virtio.h | 3 +++
tools/virtio/linux/virtio_config.h | 5 +++++
2 files changed, 8 insertions(+)
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,
--
2.31.0