On Thu, Dec 27, 2012 at 7:45 PM, Marek Szyprowski wrote: > Hello, > > > On 12/27/2012 8:14 AM, Prathyush K wrote: > >> This patch adds EXPORT_SYMBOL calls to the three arm iommu >> functions - arm_iommu_create_mapping, arm_iommu_free_mapping >> and arm_iommu_attach_device. These functions can now be called >> from dynamic modules. >> > > Could You describe a bit more why those functions might be needed by > dynamic modules? > > Hi Marek, We are adding iommu support to exynos gsc and s5p-mfc. And these two drivers need to be built as modules to improve boot time. We're calling these three functions from inside these drivers: e.g. mapping = arm_iommu_create_mapping(&platform_bus_type, 0x20000000, SZ_256M, 4); arm_iommu_attach_device(mdev, mapping); > > Signed-off-by: Prathyush K >> --- >> arch/arm/mm/dma-mapping.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/arch/arm/mm/dma-mapping.c b/arch/arm/mm/dma-mapping.c >> index 6b2fb87..c0f0f43 100644 >> --- a/arch/arm/mm/dma-mapping.c >> +++ b/arch/arm/mm/dma-mapping.c >> @@ -1797,6 +1797,7 @@ err2: >> err: >> return ERR_PTR(err); >> } >> +EXPORT_SYMBOL(arm_iommu_**create_mapping); >> > > EXPORT_SYMOBL_GPL() ? > > Right, it should be EXPORT_SYMOBL_GPL(). Will update in next patch. > > static void release_iommu_mapping(struct kref *kref) >> { >> @@ -1813,6 +1814,7 @@ void arm_iommu_release_mapping(**struct >> dma_iommu_mapping *mapping) >> if (mapping) >> kref_put(&mapping->kref, release_iommu_mapping); >> } >> +EXPORT_SYMBOL(arm_iommu_**release_mapping); >> /** >> * arm_iommu_attach_device >> @@ -1841,5 +1843,6 @@ int arm_iommu_attach_device(struct device *dev, >> pr_debug("Attached IOMMU controller to %s device.\n", >> dev_name(dev)); >> return 0; >> } >> +EXPORT_SYMBOL(arm_iommu_**attach_device); >> #endif >> > > Best regards > -- > Marek Szyprowski > Samsung Poland R&D Center > > > Regards, Prathyush