Pull iommu updates from Joerg Roedel: - Identity domain support for virtio-iommu - Move flush queue code into iommu-dma - Some fixes for AMD IOMMU suspend/resume support when x2apic is used - Arm SMMU Updates from Will Deacon: - Revert evtq and priq back to their former sizes - Return early on short-descriptor page-table allocation failure - Fix page fault reporting for Adreno GPU on SMMUv2 - Make SMMUv3 MMU notifier ops 'const' - Numerous new compatible strings for Qualcomm SMMUv2 implementations - Various smaller fixes and cleanups * tag 'iommu-updates-v5.17' of git://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu: (38 commits) iommu/iova: Temporarily include dma-mapping.h from iova.h iommu: Move flush queue data into iommu_dma_cookie iommu/iova: Move flush queue code to iommu-dma iommu/iova: Consolidate flush queue code iommu/vt-d: Use put_pages_list iommu/amd: Use put_pages_list iommu/amd: Simplify pagetable freeing iommu/iova: Squash flush_cb abstraction iommu/iova: Squash entry_dtor abstraction iommu/iova: Fix race between FQ timeout and teardown iommu/amd: Fix typo in *glues … together* in comment iommu/vt-d: Remove unused dma_to_mm_pfn function iommu/vt-d: Drop duplicate check in dma_pte_free_pagetable() iommu/vt-d: Use bitmap_zalloc() when applicable iommu/amd: Remove useless irq affinity notifier iommu/amd: X2apic mode: mask/unmask interrupts on suspend/resume iommu/amd: X2apic mode: setup the INTX registers on mask/unmask iommu/amd: X2apic mode: re-enable after resume iommu/amd: Restore GA log/tail pointer on host resume iommu/iova: Move fast alloc size roundup into alloc_iova_fast() ...
Showing the changes to include/uapi/linux (1 of 20 files). Show all
Unified · Split
| @@ -16,6 +16,7 @@ · 15 unmodified lines | |||
| 16 | #define VIRTIO_IOMMU_F_BYPASS 3 | 16 | #define VIRTIO_IOMMU_F_BYPASS 3 |
| 17 | #define VIRTIO_IOMMU_F_PROBE 4 | 17 | #define VIRTIO_IOMMU_F_PROBE 4 |
| 18 | #define VIRTIO_IOMMU_F_MMIO 5 | 18 | #define VIRTIO_IOMMU_F_MMIO 5 |
| 19 | #define VIRTIO_IOMMU_F_BYPASS_CONFIG 6 | ||
| 19 | 20 | ||
| 20 | struct virtio_iommu_range_64 { | 21 | struct virtio_iommu_range_64 { |
| 21 | __le64 start; | 22 | __le64 start; |
| @@ -36,6 +37,8 @@ struct virtio_iommu_config { · 14 unmodified lines | |||
| 36 | struct virtio_iommu_range_32 domain_range; | 37 | struct virtio_iommu_range_32 domain_range; |
| 37 | /* Probe buffer size */ | 38 | /* Probe buffer size */ |
| 38 | __le32 probe_size; | 39 | __le32 probe_size; |
| 40 | __u8 bypass; | ||
| 41 | __u8 reserved[3]; | ||
| 39 | }; | 42 | }; |
| 40 | 43 | ||
| 41 | /* Request types */ | 44 | /* Request types */ |
| @@ -66,11 +69,14 @@ struct virtio_iommu_req_tail { · 24 unmodified lines | |||
| 66 | __u8 reserved[3]; | 69 | __u8 reserved[3]; |
| 67 | }; | 70 | }; |
| 68 | 71 | ||
| 72 | #define VIRTIO_IOMMU_ATTACH_F_BYPASS (1 << 0) | ||
| 73 | |||
| 69 | struct virtio_iommu_req_attach { | 74 | struct virtio_iommu_req_attach { |
| 70 | struct virtio_iommu_req_head head; | 75 | struct virtio_iommu_req_head head; |
| 71 | __le32 domain; | 76 | __le32 domain; |
| 72 | __le32 endpoint; | 77 | __le32 endpoint; |
| 73 | __u8 reserved[8]; | 78 | __le32 flags; |
| 79 | __u8 reserved[4]; | ||
| 74 | struct virtio_iommu_req_tail tail; | 80 | struct virtio_iommu_req_tail tail; |
| 75 | }; | 81 | }; |
| 76 | 82 | ||