diff options
| author | Maxime Ripard <mripard@kernel.org> | 2026-03-31 12:00:11 +0200 |
|---|---|---|
| committer | Marek Szyprowski <m.szyprowski@samsung.com> | 2026-03-31 13:27:20 +0200 |
| commit | b3707be95f045c4e526e419435af29dc9dd1c267 (patch) | |
| tree | 08dc43c294dbf93591f1601751ea73e34c4f6705 | |
| parent | 25bd73562941b04cfba1a278d8c84f2b1c69b8e9 (diff) | |
dma: contiguous: Make dev_get_cma_area() a proper function
As we try to enable dma-buf heaps, and the CMA one in particular, to
compile as modules, we need to export dev_get_cma_area(). It's currently
implemented as an inline function that returns either the content of
device->cma_area or dma_contiguous_default_area.
Thus, it means we need to export dma_contiguous_default_area, which
isn't really something we want any module to have access to.
Instead, let's make dev_get_cma_area() a proper function we will be able
to export so we can avoid exporting dma_contiguous_default_area.
Signed-off-by: Maxime Ripard <mripard@kernel.org>
Signed-off-by: Marek Szyprowski <m.szyprowski@samsung.com>
Link: https://lore.kernel.org/r/20260331-dma-buf-heaps-as-modules-v4-2-e18fda504419@kernel.org
| -rw-r--r-- | include/linux/dma-map-ops.h | 7 | ||||
| -rw-r--r-- | kernel/dma/contiguous.c | 8 |
2 files changed, 9 insertions, 6 deletions
diff --git a/include/linux/dma-map-ops.h b/include/linux/dma-map-ops.h index c4c93c72ff6f..8604106c0c01 100644 --- a/include/linux/dma-map-ops.h +++ b/include/linux/dma-map-ops.h @@ -93,12 +93,7 @@ static inline void set_dma_ops(struct device *dev, #ifdef CONFIG_DMA_CMA extern struct cma *dma_contiguous_default_area; -static inline struct cma *dev_get_cma_area(struct device *dev) -{ - if (dev && dev->cma_area) - return dev->cma_area; - return dma_contiguous_default_area; -} +struct cma *dev_get_cma_area(struct device *dev); struct cma *dma_contiguous_get_area_by_idx(unsigned int idx); void dma_contiguous_reserve(phys_addr_t addr_limit); diff --git a/kernel/dma/contiguous.c b/kernel/dma/contiguous.c index afa9fd313040..40a0ead24979 100644 --- a/kernel/dma/contiguous.c +++ b/kernel/dma/contiguous.c @@ -131,6 +131,14 @@ bool __init cma_skip_dt_default_reserved_mem(void) return size_cmdline != -1; } +struct cma *dev_get_cma_area(struct device *dev) +{ + if (dev && dev->cma_area) + return dev->cma_area; + + return dma_contiguous_default_area; +} + #ifdef CONFIG_DMA_NUMA_CMA static struct cma *dma_contiguous_numa_area[MAX_NUMNODES]; |
