[RFC][PATCH 1/2] mm: cma: Export cma symbols for cma heap as a module

John Stultz john.stultz at linaro.org
Fri Oct 25 23:48:33 UTC 2019

From: Sandeep Patil <sspatil at google.com>

Export cma_get_name, cma_alloc, cma_release, cma_for_each_area
and dma_contiguous_default_area so that we can use these from
the dmabuf cma heap when it is built as module.

Cc: Laura Abbott <labbott at redhat.com>
Cc: Benjamin Gaignard <benjamin.gaignard at linaro.org>
Cc: Sumit Semwal <sumit.semwal at linaro.org>
Cc: Liam Mark <lmark at codeaurora.org>
Cc: Pratik Patel <pratikp at codeaurora.org>
Cc: Brian Starkey <Brian.Starkey at arm.com>
Cc: Andrew F. Davis <afd at ti.com>
Cc: Andrew Morton <akpm at linux-foundation.org>
Cc: Yue Hu <huyue2 at yulong.com>
Cc: Mike Rapoport <rppt at linux.ibm.com>
Cc: Chenbo Feng <fengc at google.com>
Cc: Alistair Strachan <astrachan at google.com>
Cc: Sandeep Patil <sspatil at google.com>
Cc: Hridya Valsaraju <hridya at google.com>
Cc: dri-devel at lists.freedesktop.org
Signed-off-by: Sandeep Patil <sspatil at google.com>
[jstultz: Rewrote commit message, added
 dma_contiguous_default_area to the set of exported symbols]
Signed-off-by: John Stultz <john.stultz at linaro.org>
 kernel/dma/contiguous.c | 1 +
 mm/cma.c                | 5 +++++
 2 files changed, 6 insertions(+)

diff --git a/kernel/dma/contiguous.c b/kernel/dma/contiguous.c
index 69cfb4345388..ff6cba63ea6f 100644
--- a/kernel/dma/contiguous.c
+++ b/kernel/dma/contiguous.c
@@ -31,6 +31,7 @@
 struct cma *dma_contiguous_default_area;
  * Default global CMA area size can be defined in kernel's .config.
diff --git a/mm/cma.c b/mm/cma.c
index 7fe0b8356775..db4642e58058 100644
--- a/mm/cma.c
+++ b/mm/cma.c
@@ -24,6 +24,7 @@
 #include <linux/memblock.h>
 #include <linux/err.h>
 #include <linux/mm.h>
+#include <linux/module.h>
 #include <linux/mutex.h>
 #include <linux/sizes.h>
 #include <linux/slab.h>
@@ -54,6 +55,7 @@ const char *cma_get_name(const struct cma *cma)
 	return cma->name ? cma->name : "(undefined)";
 static unsigned long cma_bitmap_aligned_mask(const struct cma *cma,
 					     unsigned int align_order)
@@ -500,6 +502,7 @@ struct page *cma_alloc(struct cma *cma, size_t count, unsigned int align,
 	pr_debug("%s(): returned %p\n", __func__, page);
 	return page;
  * cma_release() - release allocated pages
@@ -533,6 +536,7 @@ bool cma_release(struct cma *cma, const struct page *pages, unsigned int count)
 	return true;
 int cma_for_each_area(int (*it)(struct cma *cma, void *data), void *data)
@@ -547,3 +551,4 @@ int cma_for_each_area(int (*it)(struct cma *cma, void *data), void *data)
 	return 0;

More information about the dri-devel mailing list