[PATCH rc 2/2] iommu: Do not return 0 from map_pages if it doesn't do anything
Tian, Kevin
kevin.tian at intel.com
Sun Aug 25 23:20:53 PDT 2024
> From: Jason Gunthorpe <jgg at nvidia.com>
> Sent: Thursday, August 22, 2024 10:46 PM
>
> These three implementations of map_pages() all succeed if a mapping is
> requested with no read or write. Since they return back to __iommu_map()
> leaving the mapped output as 0 it triggers an infinite loop. Therefore
> nothing is using no-access protection bits.
>
> Further, VFIO and iommufd rely on iommu_iova_to_phys() to get back PFNs
> stored by map, if iommu_map() succeeds but iommu_iova_to_phys() fails
> that
> will create serious bugs.
>
> Thus remove this never used "nothing to do" concept and just fail map
> immediately.
>
> Fixes: e5fc9753b1a8 ("iommu/io-pgtable: Add ARMv7 short descriptor
> support")
> Fixes: e1d3c0fd701d ("iommu: add ARM LPAE page table allocator")
> Fixes: 745ef1092bcf ("iommu/io-pgtable: Move Apple DART support to its
> own file")
> Signed-off-by: Jason Gunthorpe <jgg at nvidia.com>
Reviewed-by: Kevin Tian <kevin.tian at intel.com>
More information about the linux-arm-kernel
mailing list