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
14 14
15#define VDUSE_API_VERSION_1 115#define VDUSE_API_VERSION_1 1
16 16
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
17/*23/*
18 * Get the version of VDUSE API that kernel supported (VDUSE_API_VERSION).24 * Get the version of VDUSE API that kernel supported (VDUSE_API_VERSION).
19 * This is used for future extension.25 * This is used for future extension.
@@ -63,6 +69,12 @@ struct vduse_dev_config { · 43 unmodified lines
63 */69 */
64#define VDUSE_DESTROY_DEV _IOW(VDUSE_BASE, 0x03, char[VDUSE_NAME_MAX])70#define VDUSE_DESTROY_DEV _IOW(VDUSE_BASE, 0x03, char[VDUSE_NAME_MAX])
65 71
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
66/* The ioctls for VDUSE device (/dev/vduse/$NAME) */78/* The ioctls for VDUSE device (/dev/vduse/$NAME) */
67 79
68/**80/**
@@ -325,6 +337,8 @@ enum vduse_req_type { · 256 unmodified lines
325 VDUSE_SET_STATUS,337 VDUSE_SET_STATUS,
326 VDUSE_UPDATE_IOTLB,338 VDUSE_UPDATE_IOTLB,
327 VDUSE_SET_VQ_GROUP_ASID,339 VDUSE_SET_VQ_GROUP_ASID,
340 VDUSE_SET_VQ_READY,
341 VDUSE_SUSPEND,
328};342};
329 343
330/**344/**
@@ -372,6 +386,15 @@ struct vduse_iova_range_v2 { · 41 unmodified lines
372 __u32 padding;386 __u32 padding;
373};387};
374 388
389/**
390 * struct vduse_vq_ready - Virtqueue ready request message
391 * @num: Virtqueue number
392 */
393struct vduse_vq_ready {
394 __u32 num;
395 __u32 ready;
396};
397
375/**398/**
376 * struct vduse_dev_request - control request399 * struct vduse_dev_request - control request
377 * @type: request type400 * @type: request type
@@ -382,6 +405,7 @@ struct vduse_iova_range_v2 { · 4 unmodified lines
382 * @iova: IOVA range for updating405 * @iova: IOVA range for updating
383 * @iova_v2: IOVA range for updating if API_VERSION >= 1406 * @iova_v2: IOVA range for updating if API_VERSION >= 1
384 * @vq_group_asid: ASID of a virtqueue group407 * @vq_group_asid: ASID of a virtqueue group
408 * @vq_ready: Virtqueue ready request
385 * @padding: padding409 * @padding: padding
386 *410 *
387 * Structure used by read(2) on /dev/vduse/$NAME.411 * Structure used by read(2) on /dev/vduse/$NAME.
@@ -399,6 +423,10 @@ struct vduse_dev_request { · 11 unmodified lines
399 */423 */
400 struct vduse_iova_range_v2 iova_v2;424 struct vduse_iova_range_v2 iova_v2;
401 struct vduse_vq_group_asid vq_group_asid;425 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
402 __u32 padding[32];430 __u32 padding[32];
403 };431 };
404};432};
include/uapi/linux/virtio_ids.h+1−0
@@ -69,6 +69,7 @@ · 68 unmodified lines
69#define VIRTIO_ID_BT 40 /* virtio bluetooth */69#define VIRTIO_ID_BT 40 /* virtio bluetooth */
70#define VIRTIO_ID_GPIO 41 /* virtio gpio */70#define VIRTIO_ID_GPIO 41 /* virtio gpio */
71#define VIRTIO_ID_SPI 45 /* virtio spi */71#define VIRTIO_ID_SPI 45 /* virtio spi */
72#define VIRTIO_ID_MEDIA 48 /* virtio media */
72 73
73/*74/*
74 * Virtio Transitional IDs75 * Virtio Transitional IDs