History

Merge tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost

Pull vhost,vdpa,virtio updates from Michael Tsirkin: - transport v3 support in virtio-mmio - suspend support in vduse - fixes, cleanups all over the place * tag 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/mst/vhost: (54 commits) vduse: Add suspend vduse: do not take rwsem at reset work flush vduse: add F_QUEUE_READY feature vduse: add VDUSE_SET_FEATURES ioctl vduse: add VDUSE_GET_FEATURES ioctl vduse: store control device pointer tools/virtio: Fix control typo in trace agent comment tools/virtio: Fix userspace typo in vringh test comment vhost: reject zero-size IOTLB INVALIDATE vdpa: Remove redundant dev_err() virtio_ring: fix infinite loop in virtnet_poll_cleantx when device is broken vdpa/mlx5: roll back MR update after VQ setup failure MAINTAINERS: remove Gabriel from LiteX and fw-cfg drivers virtio_mem: fix typo in comment vdpa/solidrun: fix typos in snet_ctrl comments virtio: fix article before virtio in dma-buf comment vhost: fix inaccurate kdoc in iotlb helpers virtio: rtc: time out alarm requests vdpa/mlx5: fix wrong MLX5_ADDR_OF struct type in alloc_inout() vdpa: octeon_ep: add missing MODULE_DEVICE_TABLE() ...

Linus Torvalds committed 2 months ago

Commit 7f063b22 parents a625b2a b28241837 files · +760 −222Browse files

Showing the changes to include/uapi/linux (2 of 37 files). Show all

Unified · Split

2 files
  1. include/uapi/linux/vduse.h +28 −0
  2. include/uapi/linux/virtio_ids.h +1 −0
include/uapi/linux/vduse.h+28−0
@@ -14,6 +14,12 @@ · 13 unmodified lines
1414
1515 #define VDUSE_API_VERSION_1 1
1616
17+/* The VDUSE instance expects a request for vq ready */
18+#define VDUSE_F_QUEUE_READY 0
19+
20+/* The VDUSE instance expects a request for suspend */
21+#define VDUSE_F_SUSPEND 1
22+
1723 /*
1824 * Get the version of VDUSE API that kernel supported (VDUSE_API_VERSION).
1925 * This is used for future extension.
@@ -63,6 +69,12 @@ struct vduse_dev_config { · 43 unmodified lines
6369 */
6470 #define VDUSE_DESTROY_DEV _IOW(VDUSE_BASE, 0x03, char[VDUSE_NAME_MAX])
6571
72+/* Get the VDUSE supported features */
73+#define VDUSE_GET_FEATURES _IOR(VDUSE_BASE, 0x04, __u64)
74+
75+/* Set the VDUSE features */
76+#define VDUSE_SET_FEATURES _IOW(VDUSE_BASE, 0x05, __u64)
77+
6678 /* The ioctls for VDUSE device (/dev/vduse/$NAME) */
6779
6880 /**
@@ -325,6 +337,8 @@ enum vduse_req_type { · 256 unmodified lines
325337 VDUSE_SET_STATUS,
326338 VDUSE_UPDATE_IOTLB,
327339 VDUSE_SET_VQ_GROUP_ASID,
340+ VDUSE_SET_VQ_READY,
341+ VDUSE_SUSPEND,
328342 };
329343
330344 /**
@@ -372,6 +386,15 @@ struct vduse_iova_range_v2 { · 41 unmodified lines
372386 __u32 padding;
373387 };
374388
389+/**
390+ * struct vduse_vq_ready - Virtqueue ready request message
391+ * @num: Virtqueue number
392+ */
393+struct vduse_vq_ready {
394+ __u32 num;
395+ __u32 ready;
396+};
397+
375398 /**
376399 * struct vduse_dev_request - control request
377400 * @type: request type
@@ -382,6 +405,7 @@ struct vduse_iova_range_v2 { · 4 unmodified lines
382405 * @iova: IOVA range for updating
383406 * @iova_v2: IOVA range for updating if API_VERSION >= 1
384407 * @vq_group_asid: ASID of a virtqueue group
408+ * @vq_ready: Virtqueue ready request
385409 * @padding: padding
386410 *
387411 * Structure used by read(2) on /dev/vduse/$NAME.
@@ -399,6 +423,10 @@ struct vduse_dev_request { · 11 unmodified lines
399423 */
400424 struct vduse_iova_range_v2 iova_v2;
401425 struct vduse_vq_group_asid vq_group_asid;
426+
427+ /* Only if VDUSE_F_QUEUE_READY is negotiated */
428+ struct vduse_vq_ready vq_ready;
429+
402430 __u32 padding[32];
403431 };
404432 };
include/uapi/linux/virtio_ids.h+1−0
@@ -69,6 +69,7 @@ · 68 unmodified lines
6969 #define VIRTIO_ID_BT 40 /* virtio bluetooth */
7070 #define VIRTIO_ID_GPIO 41 /* virtio gpio */
7171 #define VIRTIO_ID_SPI 45 /* virtio spi */
72+#define VIRTIO_ID_MEDIA 48 /* virtio media */
7273
7374 /*
7475 * Virtio Transitional IDs