Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

virtio_test: fixup for vq reset

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@linux.alibaba.com>
Message-Id: <20220830110549.103168-1-xuanzhuo@linux.alibaba.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>

authored by

Xuan Zhuo and committed by
Michael S. Tsirkin
dbe449d8 1bedcf22

+8
+3
tools/virtio/linux/virtio.h
··· 14 14 u64 features; 15 15 struct list_head vqs; 16 16 spinlock_t vqs_list_lock; 17 + const struct virtio_config_ops *config; 17 18 }; 18 19 19 20 struct virtqueue { ··· 24 23 struct virtio_device *vdev; 25 24 unsigned int index; 26 25 unsigned int num_free; 26 + unsigned int num_max; 27 27 void *priv; 28 + bool reset; 28 29 }; 29 30 30 31 /* Interfaces exported by virtio_ring. */
+5
tools/virtio/linux/virtio_config.h
··· 3 3 #include <linux/virtio.h> 4 4 #include <uapi/linux/virtio_config.h> 5 5 6 + struct virtio_config_ops { 7 + int (*disable_vq_and_reset)(struct virtqueue *vq); 8 + int (*enable_vq_after_reset)(struct virtqueue *vq); 9 + }; 10 + 6 11 /* 7 12 * __virtio_test_bit - helper to test feature bits. For use by transports. 8 13 * Devices should normally use virtio_has_feature,