Re: [PATCH v5 03/17] dmaengine: sh: rz-dmac: Use list_first_entry_or_null()
From: Frank Li
Date: Tue May 12 2026 - 16:38:50 EST
On Tue, May 12, 2026 at 03:12:04PM +0300, Claudiu Beznea wrote:
> Use list_first_entry_or_null() instead of open-coding it with a
> list_empty() check and list_first_entry(). This simplifies the code.
>
> Signed-off-by: Claudiu Beznea <claudiu.beznea.uj@xxxxxxxxxxxxxx>
> ---
Reviewed-by: Frank Li <Frank.Li@xxxxxxx>
>
> Changes in v5:
> - none
>
> Changes in v4:
> - none
>
> Changes in v3:
> - none, this patch is new
>
> drivers/dma/sh/rz-dmac.c | 10 ++++------
> 1 file changed, 4 insertions(+), 6 deletions(-)
>
> diff --git a/drivers/dma/sh/rz-dmac.c b/drivers/dma/sh/rz-dmac.c
> index 6d80cb668957..1717b407ab9e 100644
> --- a/drivers/dma/sh/rz-dmac.c
> +++ b/drivers/dma/sh/rz-dmac.c
> @@ -503,11 +503,10 @@ rz_dmac_prep_dma_memcpy(struct dma_chan *chan, dma_addr_t dest, dma_addr_t src,
> __func__, channel->index, &src, &dest, len);
>
> scoped_guard(spinlock_irqsave, &channel->vc.lock) {
> - if (list_empty(&channel->ld_free))
> + desc = list_first_entry_or_null(&channel->ld_free, struct rz_dmac_desc, node);
> + if (!desc)
> return NULL;
>
> - desc = list_first_entry(&channel->ld_free, struct rz_dmac_desc, node);
> -
> desc->type = RZ_DMAC_DESC_MEMCPY;
> desc->src = src;
> desc->dest = dest;
> @@ -533,11 +532,10 @@ rz_dmac_prep_slave_sg(struct dma_chan *chan, struct scatterlist *sgl,
> int i = 0;
>
> scoped_guard(spinlock_irqsave, &channel->vc.lock) {
> - if (list_empty(&channel->ld_free))
> + desc = list_first_entry_or_null(&channel->ld_free, struct rz_dmac_desc, node);
> + if (!desc)
> return NULL;
>
> - desc = list_first_entry(&channel->ld_free, struct rz_dmac_desc, node);
> -
> for_each_sg(sgl, sg, sg_len, i)
> dma_length += sg_dma_len(sg);
>
> --
> 2.43.0
>