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 | #define VDUSE_API_VERSION_1 1 | 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 | * 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 | */ | ||
| 393 | struct vduse_vq_ready { | ||
| 394 | __u32 num; | ||
| 395 | __u32 ready; | ||
| 396 | }; | ||
| 397 | |||
| 375 | /** | 398 | /** |
| 376 | * struct vduse_dev_request - control request | 399 | * struct vduse_dev_request - control request |
| 377 | * @type: request type | 400 | * @type: request type |
| @@ -382,6 +405,7 @@ struct vduse_iova_range_v2 { · 4 unmodified lines | |||
| 382 | * @iova: IOVA range for updating | 405 | * @iova: IOVA range for updating |
| 383 | * @iova_v2: IOVA range for updating if API_VERSION >= 1 | 406 | * @iova_v2: IOVA range for updating if API_VERSION >= 1 |
| 384 | * @vq_group_asid: ASID of a virtqueue group | 407 | * @vq_group_asid: ASID of a virtqueue group |
| 408 | * @vq_ready: Virtqueue ready request | ||
| 385 | * @padding: padding | 409 | * @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 | }; |
| @@ -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 IDs | 75 | * Virtio Transitional IDs |