2024-02-06 04:15:37

by Anshuman Khandual

[permalink] [raw]
Subject: [PATCH] mm/cma: Drop cma_get_name()

cma_get_name() just returns cma->name without any additional transformation
unlike other helpers such as cma_get_base() and cma_get_size(). This helper
is not worth the additional indirection, and can be dropped after replacing
directly with cma->name in the sole caller __add_cma_heap().

Cc: Sumit Semwal <[email protected]>
Cc: Andrew Morton <[email protected]>
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Cc: [email protected]
Signed-off-by: Anshuman Khandual <[email protected]>
---
drivers/dma-buf/heaps/cma_heap.c | 2 +-
include/linux/cma.h | 1 -
mm/cma.c | 5 -----
3 files changed, 1 insertion(+), 7 deletions(-)

diff --git a/drivers/dma-buf/heaps/cma_heap.c b/drivers/dma-buf/heaps/cma_heap.c
index 4a63567e93ba..6ceb15060b02 100644
--- a/drivers/dma-buf/heaps/cma_heap.c
+++ b/drivers/dma-buf/heaps/cma_heap.c
@@ -376,7 +376,7 @@ static int __add_cma_heap(struct cma *cma, void *data)
return -ENOMEM;
cma_heap->cma = cma;

- exp_info.name = cma_get_name(cma);
+ exp_info.name = cma->name;
exp_info.ops = &cma_heap_ops;
exp_info.priv = cma_heap;

diff --git a/include/linux/cma.h b/include/linux/cma.h
index 9db877506ea8..12ab7cd1d529 100644
--- a/include/linux/cma.h
+++ b/include/linux/cma.h
@@ -25,7 +25,6 @@ struct cma;
extern unsigned long totalcma_pages;
extern phys_addr_t cma_get_base(const struct cma *cma);
extern unsigned long cma_get_size(const struct cma *cma);
-extern const char *cma_get_name(const struct cma *cma);

extern int __init cma_declare_contiguous_nid(phys_addr_t base,
phys_addr_t size, phys_addr_t limit,
diff --git a/mm/cma.c b/mm/cma.c
index ed6581ef50c1..2627f4ba481f 100644
--- a/mm/cma.c
+++ b/mm/cma.c
@@ -45,11 +45,6 @@ unsigned long cma_get_size(const struct cma *cma)
return cma->count << PAGE_SHIFT;
}

-const char *cma_get_name(const struct cma *cma)
-{
- return cma->name;
-}
-
static unsigned long cma_bitmap_aligned_mask(const struct cma *cma,
unsigned int align_order)
{
--
2.25.1



2024-02-06 22:28:18

by Andrew Morton

[permalink] [raw]
Subject: Re: [PATCH] mm/cma: Drop cma_get_name()

On Tue, 6 Feb 2024 09:45:18 +0530 Anshuman Khandual <[email protected]> wrote:

> cma_get_name() just returns cma->name without any additional transformation
> unlike other helpers such as cma_get_base() and cma_get_size(). This helper
> is not worth the additional indirection, and can be dropped after replacing
> directly with cma->name in the sole caller __add_cma_heap().

drivers/dma-buf/heaps/cma_heap.c: In function '__add_cma_heap':
drivers/dma-buf/heaps/cma_heap.c:379:28: error: invalid use of undefined type 'struct cma'
379 | exp_info.name = cma->name;
| ^~

Fixing this would require moving the `struct cma' definition into
cma.h. I don't think that's worthwhile.


2024-02-07 02:33:27

by Anshuman Khandual

[permalink] [raw]
Subject: Re: [PATCH] mm/cma: Drop cma_get_name()



On 2/7/24 03:55, Andrew Morton wrote:
> On Tue, 6 Feb 2024 09:45:18 +0530 Anshuman Khandual <[email protected]> wrote:
>
>> cma_get_name() just returns cma->name without any additional transformation
>> unlike other helpers such as cma_get_base() and cma_get_size(). This helper
>> is not worth the additional indirection, and can be dropped after replacing
>> directly with cma->name in the sole caller __add_cma_heap().
>
> drivers/dma-buf/heaps/cma_heap.c: In function '__add_cma_heap':
> drivers/dma-buf/heaps/cma_heap.c:379:28: error: invalid use of undefined type 'struct cma'
> 379 | exp_info.name = cma->name;
> | ^~
>
> Fixing this would require moving the `struct cma' definition into
> cma.h. I don't think that's worthwhile.

Existing forward declaration e.g 'struct cma' inside include/linux/cma.h does
not seem to sufficient for cma->name to be de-referenced. Agreed - moving the
definition for 'struct cma' into include/linux/cma.h is not worthwhile. Hence
please drop this patch.