diff options
author | Jean-Philippe Brucker <jean-philippe@linaro.org> | 2020-11-06 16:50:48 +0100 |
---|---|---|
committer | Will Deacon <will@kernel.org> | 2020-11-23 14:16:55 +0000 |
commit | cfc78dfd9b36dcda7c3ca9cdfca343f84c72252f (patch) | |
tree | 8b1b43574b85d1d31d3aff0c7e7ac67f959118f2 /drivers/iommu/iommu-sva-lib.h | |
parent | cb4789b0d19ff231ce9f73376a023341300aed96 (diff) | |
download | linux-cfc78dfd9b36dcda7c3ca9cdfca343f84c72252f.tar.gz linux-cfc78dfd9b36dcda7c3ca9cdfca343f84c72252f.tar.bz2 linux-cfc78dfd9b36dcda7c3ca9cdfca343f84c72252f.zip |
iommu/sva: Add PASID helpers
Let IOMMU drivers allocate a single PASID per mm. Store the mm in the
IOASID set to allow refcounting and searching mm by PASID, when handling
an I/O page fault.
Signed-off-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>
Link: https://lore.kernel.org/r/20201106155048.997886-3-jean-philippe@linaro.org
Signed-off-by: Will Deacon <will@kernel.org>
Diffstat (limited to 'drivers/iommu/iommu-sva-lib.h')
-rw-r--r-- | drivers/iommu/iommu-sva-lib.h | 15 |
1 files changed, 15 insertions, 0 deletions
diff --git a/drivers/iommu/iommu-sva-lib.h b/drivers/iommu/iommu-sva-lib.h new file mode 100644 index 000000000000..b40990aef3fd --- /dev/null +++ b/drivers/iommu/iommu-sva-lib.h @@ -0,0 +1,15 @@ +/* SPDX-License-Identifier: GPL-2.0 */ +/* + * SVA library for IOMMU drivers + */ +#ifndef _IOMMU_SVA_LIB_H +#define _IOMMU_SVA_LIB_H + +#include <linux/ioasid.h> +#include <linux/mm_types.h> + +int iommu_sva_alloc_pasid(struct mm_struct *mm, ioasid_t min, ioasid_t max); +void iommu_sva_free_pasid(struct mm_struct *mm); +struct mm_struct *iommu_sva_find(ioasid_t pasid); + +#endif /* _IOMMU_SVA_LIB_H */ |