From 7d50253c2790f5c8a2f43c4c737241ab2458a77f Mon Sep 17 00:00:00 2001 From: Suren Baghdasaryan Date: Mon, 16 Mar 2020 16:39:31 -0700 Subject: [PATCH] ANDROID: Export functions to be used with dma_map_ops in modules For modules to reuse default dma_map_ops implementations they need to be exported. Export the following functions: dma_direct_alloc dma_direct_free dma_common_mmap dma_common_get_sgtable dma_direct_get_required_mask Bug: 151050914 Signed-off-by: Suren Baghdasaryan Change-Id: Ia77b797fcd909fce01da7431bfbde282dc70b3b3 (cherry picked from commit fd31496dae939c7bf2ef874e08d4bf8c6ab738b3) Signed-off-by: Qian-Hao Huang (cherry picked from commit cdc9f6ef946f3c17b048b3ee9e36aa0bbc12d712) --- kernel/dma/direct.c | 3 +++ kernel/dma/ops_helpers.c | 2 ++ 2 files changed, 5 insertions(+) diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c index 71bb2e3440e2..09ca202ac480 100644 --- a/kernel/dma/direct.c +++ b/kernel/dma/direct.c @@ -43,6 +43,7 @@ u64 dma_direct_get_required_mask(struct device *dev) return (1ULL << (fls64(max_dma) - 1)) * 2 - 1; } +EXPORT_SYMBOL_GPL(dma_direct_get_required_mask); static gfp_t dma_direct_optimal_gfp_mask(struct device *dev, u64 dma_mask, u64 *phys_limit) @@ -320,6 +321,7 @@ out_free_pages: __dma_direct_free_pages(dev, page, size); return NULL; } +EXPORT_SYMBOL_GPL(dma_direct_alloc); void dma_direct_free(struct device *dev, size_t size, void *cpu_addr, dma_addr_t dma_addr, unsigned long attrs) @@ -365,6 +367,7 @@ void dma_direct_free(struct device *dev, size_t size, __dma_direct_free_pages(dev, dma_direct_to_page(dev, dma_addr), size); } +EXPORT_SYMBOL_GPL(dma_direct_free); struct page *dma_direct_alloc_pages(struct device *dev, size_t size, dma_addr_t *dma_handle, enum dma_data_direction dir, gfp_t gfp) diff --git a/kernel/dma/ops_helpers.c b/kernel/dma/ops_helpers.c index af4a6ef48ce0..e28e1e17eaf5 100644 --- a/kernel/dma/ops_helpers.c +++ b/kernel/dma/ops_helpers.c @@ -27,6 +27,7 @@ int dma_common_get_sgtable(struct device *dev, struct sg_table *sgt, sg_set_page(sgt->sgl, page, PAGE_ALIGN(size), 0); return ret; } +EXPORT_SYMBOL_GPL(dma_common_get_sgtable); /* * Create userspace mapping for the DMA-coherent memory. @@ -57,6 +58,7 @@ int dma_common_mmap(struct device *dev, struct vm_area_struct *vma, return -ENXIO; #endif /* CONFIG_MMU */ } +EXPORT_SYMBOL_GPL(dma_common_mmap); struct page *dma_common_alloc_pages(struct device *dev, size_t size, dma_addr_t *dma_handle, enum dma_data_direction dir, gfp_t gfp)