From 84ea6a79e2dfbbc3787b0230e69d922964aa422f Mon Sep 17 00:00:00 2001 From: Jason Gunthorpe Date: Mon, 7 Nov 2022 22:27:34 -0400 Subject: sys/linux: fix VFIO map/unmap unmap has its own set of flags that trigger interesting behavior. map needs to take in a user_va or it will not succeed in many cases. --- sys/linux/dev_vfio.txt | 9 +++++---- sys/linux/dev_vfio.txt.const | 3 +++ 2 files changed, 8 insertions(+), 4 deletions(-) (limited to 'sys/linux') diff --git a/sys/linux/dev_vfio.txt b/sys/linux/dev_vfio.txt index b4e2525cd..db7fc6ddb 100644 --- a/sys/linux/dev_vfio.txt +++ b/sys/linux/dev_vfio.txt @@ -35,15 +35,15 @@ vfio_iommu_type1_info { vfio_iommu_type1_dma_map { argsz len[parent, int32] - flags flags[vfio_dma_flags, int32] - vaddr int64 + flags flags[vfio_map_flags, int32] + user_va ptr64[in, array[int8]] iova int64 size int64 } vfio_iommu_type1_dma_unmap { argsz len[parent, int32] - flags flags[vfio_dma_flags, int32] + flags flags[vfio_unmap_flags, int32] iova int64 size int64 data array[int8] @@ -73,4 +73,5 @@ vfio_iommu_type1_info_dma_avail { } iommu_flags = VFIO_TYPE1_IOMMU, VFIO_SPAPR_TCE_IOMMU, VFIO_TYPE1v2_IOMMU, VFIO_DMA_CC_IOMMU, VFIO_EEH, VFIO_TYPE1_NESTING_IOMMU, VFIO_SPAPR_TCE_v2_IOMMU, VFIO_NOIOMMU_IOMMU -vfio_dma_flags = VFIO_DMA_MAP_FLAG_READ, VFIO_DMA_MAP_FLAG_WRITE +vfio_map_flags = VFIO_DMA_MAP_FLAG_READ, VFIO_DMA_MAP_FLAG_WRITE +vfio_unmap_flags = VFIO_DMA_UNMAP_FLAG_GET_DIRTY_BITMAP, VFIO_DMA_UNMAP_FLAG_ALL, VFIO_DMA_UNMAP_FLAG_VADDR diff --git a/sys/linux/dev_vfio.txt.const b/sys/linux/dev_vfio.txt.const index fee9d6bc8..349359bc8 100644 --- a/sys/linux/dev_vfio.txt.const +++ b/sys/linux/dev_vfio.txt.const @@ -5,6 +5,9 @@ VFIO_CHECK_EXTENSION = 15205, mips64le:ppc64le:536886117 VFIO_DMA_CC_IOMMU = 4 VFIO_DMA_MAP_FLAG_READ = 1 VFIO_DMA_MAP_FLAG_WRITE = 2 +VFIO_DMA_UNMAP_FLAG_ALL = 2 +VFIO_DMA_UNMAP_FLAG_GET_DIRTY_BITMAP = 1 +VFIO_DMA_UNMAP_FLAG_VADDR = 4 VFIO_EEH = 5 VFIO_GET_API_VERSION = 15204, mips64le:ppc64le:536886116 VFIO_IOMMU_GET_INFO = 15216, mips64le:ppc64le:536886128 -- cgit mrf-deployment