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() ...
Showing the changes to include/uapi/linux (2 of 37 files). Show all
Unified · Split
| @@ -14,6 +14,12 @@ · 13 unmodified lines | ||
| 14 | 14 | |
| 15 | 15 | #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 | 24 | * Get the version of VDUSE API that kernel supported (VDUSE_API_VERSION). |
| 19 | 25 | * This is used for future extension. |
| @@ -63,6 +69,12 @@ struct vduse_dev_config { · 43 unmodified lines | ||
| 63 | 69 | */ |
| 64 | 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 | 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 | 337 | VDUSE_SET_STATUS, |
| 326 | 338 | VDUSE_UPDATE_IOTLB, |
| 327 | 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 | 386 | __u32 padding; |
| 373 | 387 | }; |
| 374 | 388 | |
| 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 | + | |
| 375 | 398 | /** |
| 376 | 399 | * struct vduse_dev_request - control request |
| 377 | 400 | * @type: request type |
| @@ -382,6 +405,7 @@ struct vduse_iova_range_v2 { · 4 unmodified lines | ||
| 382 | 405 | * @iova: IOVA range for updating |
| 383 | 406 | * @iova_v2: IOVA range for updating if API_VERSION >= 1 |
| 384 | 407 | * @vq_group_asid: ASID of a virtqueue group |
| 408 | + * @vq_ready: Virtqueue ready request | |
| 385 | 409 | * @padding: padding |
| 386 | 410 | * |
| 387 | 411 | * Structure used by read(2) on /dev/vduse/$NAME. |
| @@ -399,6 +423,10 @@ struct vduse_dev_request { · 11 unmodified lines | ||
| 399 | 423 | */ |
| 400 | 424 | struct vduse_iova_range_v2 iova_v2; |
| 401 | 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 | 430 | __u32 padding[32]; |
| 403 | 431 | }; |
| 404 | 432 | }; |
| @@ -69,6 +69,7 @@ · 68 unmodified lines | ||
| 69 | 69 | #define VIRTIO_ID_BT 40 /* virtio bluetooth */ |
| 70 | 70 | #define VIRTIO_ID_GPIO 41 /* virtio gpio */ |
| 71 | 71 | #define VIRTIO_ID_SPI 45 /* virtio spi */ |
| 72 | +#define VIRTIO_ID_MEDIA 48 /* virtio media */ | |
| 72 | 73 | |
| 73 | 74 | /* |
| 74 | 75 | * Virtio Transitional IDs |