iommu: DMA domain epilogue
Subsystems (3)
Robin Murphy
maintainercover iommu: DMA domain epilogue
Hi Joerg,
As planned, here are the follow-up patches to resolve the merge of the DART driver with the core changes. There's some argument for this being 5.15 fix material (the driver getting DMA cookies unconditionally is still technically wrong), but in practice it shouldn't be an issue either if you'd prefer to treat it as cleanup for 5.16. Your choice :)
Cheers,
Robin.
Robin Murphy (2):
iommu/dart: Clean up IOVA cookie crumbs
iommu/dma: Unexport IOVA cookie management
drivers/iommu/apple-dart.c | 2 -- drivers/iommu/dma-iommu.c | 7 ------- drivers/iommu/iommu.c | 3 +-- 3 files changed, 1 insertion(+), 11 deletions(-)
Signature · 6 lines
2.25.1 _______________________________________________ iommu mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/iommu
Robin Murphy
maintainerPATCH 1/2 iommu/dart: Clean up IOVA cookie crumbs
The addition of the DART driver crossed over with moving IOVA cookie management into core code; clean up the now-unnecessary remnants here.
--- drivers/iommu/apple-dart.c | 2 -- 1 file changed, 2 deletions(-)
drivers/iommu/apple-dart.c +0 -2
@@ -15,7 +15,6 @@#include <linux/bitfield.h> #include <linux/clk.h> #include <linux/dev_printk.h> -#include <linux/dma-iommu.h> #include <linux/dma-mapping.h> #include <linux/err.h> #include <linux/interrupt.h>
@@ -596,7 +595,6 @@ static struct iommu_domain *apple_dart_domain_alloc(unsigned int type)if (!dart_domain)return NULL ; -iommu_get_dma_cookie (&dart_domain->domain);mutex_init (&dart_domain->init_lock);/* no need to allocate pgtbl_ops or do any other finalization steps */
Signature · 6 lines
2.25.1 _______________________________________________ iommu mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/iommu
Robin Murphy
maintainerPATCH 2/2 iommu/dma: Unexport IOVA cookie management
In reply to Robin MurphyIOVA 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.
--- drivers/iommu/dma-iommu.c | 7 ------- drivers/iommu/iommu.c | 3 +-- 2 files changed, 1 insertion(+), 9 deletions(-)
drivers/iommu/dma-iommu.c +0 -7
@@ -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
drivers/iommu/iommu.c +1 -2
@@ -1953,8 +1953,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 avoid -EEXIST while drivers still get their own cookies */ -if (iommu_is_dma_domain (domain) && !domain->iova_cookie &&iommu_get_dma_cookie (domain)) { +if (iommu_is_dma_domain (domain) &&iommu_get_dma_cookie (domain)) {iommu_domain_free (domain); domain =NULL ; }
Signature · 6 lines
2.25.1 _______________________________________________ iommu mailing list [email protected] https://lists.linuxfoundation.org/mailman/listinfo/iommu
Joerg Roedel
maintainerHi Robin,
Quoted 3 lines · Robin Murphy
Robin Murphy (2):
iommu/dart: Clean up IOVA cookie crumbs
iommu/dma: Unexport IOVA cookie management
Thanks, all applied now.
_______________________________________________
iommu mailing list
[email protected]
https://lists.linuxfoundation.org/mailman/listinfo/iommu