There is nothing wrong in having a loadable module implementing DMA API, for example to be used for sub-devices registered by the module. However, most of the functions from dma-mapping do not have their symbols exported, making it impossible to use them from loadable modules.
Export the remaining non-static functions in the file, so that loadable modules can benefit from them. Use EXPORT_SYMBOL() for consistency with other exports in the file. Signed-off-by: Tomasz Figa <tf...@chromium.org> --- drivers/base/dma-mapping.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/drivers/base/dma-mapping.c b/drivers/base/dma-mapping.c index 5096755d185e..1fda8df3d849 100644 --- a/drivers/base/dma-mapping.c +++ b/drivers/base/dma-mapping.c @@ -287,6 +287,7 @@ void *dma_common_pages_remap(struct page **pages, size_t size, return area->addr; } +EXPORT_SYMBOL(dma_common_pages_remap); /* * remaps an allocated contiguous region into another vm_area. @@ -316,6 +317,7 @@ void *dma_common_contiguous_remap(struct page *page, size_t size, return NULL; return area->addr; } +EXPORT_SYMBOL(dma_common_contiguous_remap); /* * unmaps a range previously mapped by dma_common_*_remap @@ -332,6 +334,7 @@ void dma_common_free_remap(void *cpu_addr, size_t size, unsigned long vm_flags) unmap_kernel_range((unsigned long)cpu_addr, PAGE_ALIGN(size)); vunmap(cpu_addr); } +EXPORT_SYMBOL(dma_common_free_remap); #endif /* -- 2.13.2.725.g09c95d1e9-goog