The CMA dma-buf heap uses the dev_get_cma_area() inline function that would either return the content of device.cma_area or the content of dma_contiguous_default_area. The latter holds a pointer to the default CMA region, and is stored in a public variable. However, that variable isn't exported which prevents to use dev_get_cma_area() in modules. Since we want to turn the CMA heap into a module, let's export dma_contiguous_default_area to allow modules to use dev_get_cma_area(). Signed-off-by: Maxime Ripard --- kernel/dma/contiguous.c | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/dma/contiguous.c b/kernel/dma/contiguous.c index 14bd54fb758537f01a6fe27318e7b683964e20b1..fb64ccb99243e3cfea4890391a723130db69ee94 100644 --- a/kernel/dma/contiguous.c +++ b/kernel/dma/contiguous.c @@ -52,10 +52,11 @@ #else #define CMA_SIZE_MBYTES 0 #endif struct cma *dma_contiguous_default_area; +EXPORT_SYMBOL_GPL(dma_contiguous_default_area); /* * Default global CMA area size can be defined in kernel's .config. * This is useful mainly for distro maintainers to create a kernel * that works correctly for most supported systems. -- 2.53.0