iommu: Add gfp parameter to iommu_ops::map
[ Upstream commit 781ca2de ] Add a gfp_t parameter to the iommu_ops::map function. Remove the needless locking in the AMD iommu driver. The iommu_ops::map function (or the iommu_map function which calls it) was always supposed to be sleepable (according to Joerg's comment in this thread: https://lore.kernel.org/patchwork/patch/977520/ ) and so should probably have had a "might_sleep()" since it was written. However currently the dma-iommu api can call iommu_map in an atomic context, which it shouldn't do. This doesn't cause any problems because any iommu driver which uses the dma-iommu api uses gfp_atomic in it's iommu_ops::map function. But doing this wastes the memory allocators atomic pools. Signed-off-by:Tom Murphy <murphyt7@tcd.ie> Reviewed-by:
Robin Murphy <robin.murphy@arm.com> Reviewed-by:
Christoph Hellwig <hch@lst.de> Signed-off-by:
Joerg Roedel <jroedel@suse.de> Stable-dep-of: b7e08a5a ("RDMA/usnic: use iommu_map_atomic() under spin_lock()") Signed-off-by:
Sasha Levin <sashal@kernel.org>
Showing
- drivers/iommu/amd_iommu.c 2 additions, 1 deletiondrivers/iommu/amd_iommu.c
- drivers/iommu/arm-smmu-v3.c 1 addition, 1 deletiondrivers/iommu/arm-smmu-v3.c
- drivers/iommu/arm-smmu.c 1 addition, 1 deletiondrivers/iommu/arm-smmu.c
- drivers/iommu/dma-iommu.c 3 additions, 3 deletionsdrivers/iommu/dma-iommu.c
- drivers/iommu/exynos-iommu.c 1 addition, 1 deletiondrivers/iommu/exynos-iommu.c
- drivers/iommu/intel-iommu.c 1 addition, 1 deletiondrivers/iommu/intel-iommu.c
- drivers/iommu/iommu.c 37 additions, 6 deletionsdrivers/iommu/iommu.c
- drivers/iommu/ipmmu-vmsa.c 1 addition, 1 deletiondrivers/iommu/ipmmu-vmsa.c
- drivers/iommu/msm_iommu.c 1 addition, 1 deletiondrivers/iommu/msm_iommu.c
- drivers/iommu/mtk_iommu.c 1 addition, 1 deletiondrivers/iommu/mtk_iommu.c
- drivers/iommu/mtk_iommu_v1.c 1 addition, 1 deletiondrivers/iommu/mtk_iommu_v1.c
- drivers/iommu/omap-iommu.c 1 addition, 1 deletiondrivers/iommu/omap-iommu.c
- drivers/iommu/qcom_iommu.c 1 addition, 1 deletiondrivers/iommu/qcom_iommu.c
- drivers/iommu/rockchip-iommu.c 1 addition, 1 deletiondrivers/iommu/rockchip-iommu.c
- drivers/iommu/s390-iommu.c 1 addition, 1 deletiondrivers/iommu/s390-iommu.c
- drivers/iommu/tegra-gart.c 1 addition, 1 deletiondrivers/iommu/tegra-gart.c
- drivers/iommu/tegra-smmu.c 1 addition, 1 deletiondrivers/iommu/tegra-smmu.c
- drivers/iommu/virtio-iommu.c 1 addition, 1 deletiondrivers/iommu/virtio-iommu.c
- include/linux/iommu.h 20 additions, 1 deletioninclude/linux/iommu.h
Loading
Please register or sign in to comment