Re: [PATCH v2 12/24] iommu/dma: Unexport IOVA cookie management

Lu Baolu
2021-07-30T06:12:02Z

On 7/28/21 11:58 PM, Robin Murphy wrote:
> IOVA cookies are now got and put by core code, so we no longer need to
> export these to modular drivers. The export for getting MSI cookies
> stays, since VFIO can still be a module, but it was already relying on
> someone else putting them, so that aspect is unaffected.
>
> Signed-off-by: Robin Murphy <robin.murphy@arm.com>
> ---
> drivers/iommu/dma-iommu.c | 7 -------
> drivers/iommu/iommu.c | 3 +--
> 2 files changed, 1 insertion(+), 9 deletions(-)
>
> diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
> index 98ba927aee1a..10067fbc4309 100644
> --- a/drivers/iommu/dma-iommu.c
> +++ b/drivers/iommu/dma-iommu.c
> @@ -98,9 +98,6 @@ static struct iommu_dma_cookie *cookie_alloc(enum iommu_dma_cookie_type type)
> /**
> * iommu_get_dma_cookie - Acquire DMA-API resources for a domain
> * @domain: IOMMU domain to prepare for DMA-API usage
> - *
> - * IOMMU drivers should normally call this from their domain_alloc
> - * callback when domain->type == IOMMU_DOMAIN_DMA.
> */
> int iommu_get_dma_cookie(struct iommu_domain *domain)
> {
> @@ -113,7 +110,6 @@ int iommu_get_dma_cookie(struct iommu_domain *domain)
>
> return 0;
> }
> -EXPORT_SYMBOL(iommu_get_dma_cookie);
>
> /**
> * iommu_get_msi_cookie - Acquire just MSI remapping resources
> @@ -151,8 +147,6 @@ EXPORT_SYMBOL(iommu_get_msi_cookie);
> * iommu_put_dma_cookie - Release a domain's DMA mapping resources
> * @domain: IOMMU domain previously prepared by iommu_get_dma_cookie() or
> * iommu_get_msi_cookie()
> - *
> - * IOMMU drivers should normally call this from their domain_free callback.
> */
> void iommu_put_dma_cookie(struct iommu_domain *domain)
> {
> @@ -172,7 +166,6 @@ void iommu_put_dma_cookie(struct iommu_domain *domain)
> kfree(cookie);
> domain->iova_cookie = NULL;
> }
> -EXPORT_SYMBOL(iommu_put_dma_cookie);
>
> /**
> * iommu_dma_get_resv_regions - Reserved region driver helper
> diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
> index ea5a9ea8d431..fa8109369f74 100644
> --- a/drivers/iommu/iommu.c
> +++ b/drivers/iommu/iommu.c
> @@ -1947,8 +1947,7 @@ static struct iommu_domain *__iommu_domain_alloc(struct bus_type *bus,
> /* Assume all sizes by default; the driver may override this later */
> domain->pgsize_bitmap = bus->iommu_ops->pgsize_bitmap;
>
> - /* Temporarily ignore -EEXIST while drivers still get their own cookies */
> - if (type == IOMMU_DOMAIN_DMA && iommu_get_dma_cookie(domain) == -ENOMEM) {
> + if (type == IOMMU_DOMAIN_DMA && iommu_get_dma_cookie(domain)) {
> iommu_domain_free(domain);
> domain = NULL;
> }
>

Reviewed-by: Lu Baolu <baolu.lu@linux.intel.com>

Best regards,
baolu