[PATCH] dma-buf: system_heap: Use LIST_HEAD() to initialize on stack list head

Jisheng Zhang posted 1 patch 5 days, 20 hours ago
drivers/dma-buf/heaps/system_heap.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
[PATCH] dma-buf: system_heap: Use LIST_HEAD() to initialize on stack list head
Posted by Jisheng Zhang 5 days, 20 hours ago
Use LIST_HEAD to initialize on stack list head. No intentional
functional impact.

Change generated with below coccinelle script:

@@
identifier name;
@@
- struct list_head name;
+ LIST_HEAD(name);
... when != name
- INIT_LIST_HEAD(&name);

Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
---
 drivers/dma-buf/heaps/system_heap.c | 3 +--
 1 file changed, 1 insertion(+), 2 deletions(-)

diff --git a/drivers/dma-buf/heaps/system_heap.c b/drivers/dma-buf/heaps/system_heap.c
index 03c2b87cb111..6f8b7138ff56 100644
--- a/drivers/dma-buf/heaps/system_heap.c
+++ b/drivers/dma-buf/heaps/system_heap.c
@@ -409,7 +409,7 @@ static struct dma_buf *system_heap_allocate(struct dma_heap *heap,
 	struct dma_buf *dmabuf;
 	struct sg_table *table;
 	struct scatterlist *sg;
-	struct list_head pages;
+	LIST_HEAD(pages);
 	struct page *page, *tmp_page;
 	int i, ret = -ENOMEM;
 
@@ -423,7 +423,6 @@ static struct dma_buf *system_heap_allocate(struct dma_heap *heap,
 	buffer->len = len;
 	buffer->cc_shared = cc_shared;
 
-	INIT_LIST_HEAD(&pages);
 	i = 0;
 	while (size_remaining > 0) {
 		/*
-- 
2.53.0
Re: [PATCH] dma-buf: system_heap: Use LIST_HEAD() to initialize on stack list head
Posted by Christian König 5 days, 20 hours ago
On 5/19/26 08:05, Jisheng Zhang wrote:
> Use LIST_HEAD to initialize on stack list head. No intentional
> functional impact.
> 
> Change generated with below coccinelle script:
> 
> @@
> identifier name;
> @@
> - struct list_head name;
> + LIST_HEAD(name);
> ... when != name
> - INIT_LIST_HEAD(&name);

The patch itself looks correct, but my question is why would we want to do that?

Initializing the list head (or any other result variable) directly before it is filled in is usually good practice.

Regards,
Christian.

> 
> Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
> ---
>  drivers/dma-buf/heaps/system_heap.c | 3 +--
>  1 file changed, 1 insertion(+), 2 deletions(-)
> 
> diff --git a/drivers/dma-buf/heaps/system_heap.c b/drivers/dma-buf/heaps/system_heap.c
> index 03c2b87cb111..6f8b7138ff56 100644
> --- a/drivers/dma-buf/heaps/system_heap.c
> +++ b/drivers/dma-buf/heaps/system_heap.c
> @@ -409,7 +409,7 @@ static struct dma_buf *system_heap_allocate(struct dma_heap *heap,
>         struct dma_buf *dmabuf;
>         struct sg_table *table;
>         struct scatterlist *sg;
> -       struct list_head pages;
> +       LIST_HEAD(pages);
>         struct page *page, *tmp_page;
>         int i, ret = -ENOMEM;
> 
> @@ -423,7 +423,6 @@ static struct dma_buf *system_heap_allocate(struct dma_heap *heap,
>         buffer->len = len;
>         buffer->cc_shared = cc_shared;
> 
> -       INIT_LIST_HEAD(&pages);
>         i = 0;
>         while (size_remaining > 0) {
>                 /*
> --
> 2.53.0
>
Re: [PATCH] dma-buf: system_heap: Use LIST_HEAD() to initialize on stack list head
Posted by Jisheng Zhang 5 days, 3 hours ago
On Tue, May 19, 2026 at 08:51:00AM +0200, Christian König wrote:
> On 5/19/26 08:05, Jisheng Zhang wrote:
> > Use LIST_HEAD to initialize on stack list head. No intentional
> > functional impact.
> > 
> > Change generated with below coccinelle script:
> > 
> > @@
> > identifier name;
> > @@
> > - struct list_head name;
> > + LIST_HEAD(name);
> > ... when != name
> > - INIT_LIST_HEAD(&name);
> 
> The patch itself looks correct, but my question is why would we want to do that?

The benefit is: simpler code, combine the linked list defintion and
initialization in one step, thus 1 LoC vs 2 LoCs; And potential bug
prevention, e.g use the list before intialized.
But I agree, no strong benefit here.
> 
> Initializing the list head (or any other result variable) directly before it is filled in is usually good practice.
> 
> Regards,
> Christian.
> 
> > 
> > Signed-off-by: Jisheng Zhang <jszhang@kernel.org>
> > ---
> >  drivers/dma-buf/heaps/system_heap.c | 3 +--
> >  1 file changed, 1 insertion(+), 2 deletions(-)
> > 
> > diff --git a/drivers/dma-buf/heaps/system_heap.c b/drivers/dma-buf/heaps/system_heap.c
> > index 03c2b87cb111..6f8b7138ff56 100644
> > --- a/drivers/dma-buf/heaps/system_heap.c
> > +++ b/drivers/dma-buf/heaps/system_heap.c
> > @@ -409,7 +409,7 @@ static struct dma_buf *system_heap_allocate(struct dma_heap *heap,
> >         struct dma_buf *dmabuf;
> >         struct sg_table *table;
> >         struct scatterlist *sg;
> > -       struct list_head pages;
> > +       LIST_HEAD(pages);
> >         struct page *page, *tmp_page;
> >         int i, ret = -ENOMEM;
> > 
> > @@ -423,7 +423,6 @@ static struct dma_buf *system_heap_allocate(struct dma_heap *heap,
> >         buffer->len = len;
> >         buffer->cc_shared = cc_shared;
> > 
> > -       INIT_LIST_HEAD(&pages);
> >         i = 0;
> >         while (size_remaining > 0) {
> >                 /*
> > --
> > 2.53.0
> > 
>