diff mbox series

mmc: renesas_sdhi_sys_dmac: use DMA_SLAVE_BUSWIDTH_UNDEFINED

Message ID 5e22c587-5698-e132-4429-48674a6ddbb7@omp.ru (mailing list archive)
State New, archived
Headers show
Series mmc: renesas_sdhi_sys_dmac: use DMA_SLAVE_BUSWIDTH_UNDEFINED | expand

Commit Message

Sergey Shtylyov Jan. 21, 2022, 8:38 p.m. UTC
The 'dma_slave_config::{src|dst}_addr_width' fields have the *enum* type
which isn't isomorphic with the *bool* type, however is used as a boolean
expression. Use the *enum* dma_slave_buswidth's value corresponding to 0
instead.

Found by Linux Verification Center (linuxtesting.org) with the SVACE static
analysis tool.

Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>

---
This patch is against the 'next' branch of Ulf Hansson's 'mmc.git' repo.

drivers/mmc/host/renesas_sdhi_sys_dmac.c |    4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

Comments

Ulf Hansson Jan. 31, 2022, 4:26 p.m. UTC | #1
+ Vinod

On Fri, 21 Jan 2022 at 21:38, Sergey Shtylyov <s.shtylyov@omp.ru> wrote:
>
> The 'dma_slave_config::{src|dst}_addr_width' fields have the *enum* type
> which isn't isomorphic with the *bool* type, however is used as a boolean
> expression. Use the *enum* dma_slave_buswidth's value corresponding to 0
> instead.
>
> Found by Linux Verification Center (linuxtesting.org) with the SVACE static
> analysis tool.

I have no strong opinion, but just wanted to make sure this is inline
with what Vinod wants.

There are not so many users checking DMA_SLAVE_BUSWIDTH_UNDEFINED,
perhaps we should simply drop it and instead leave the checks below as
is?

>
> Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>

Kind regards
Uffe

>
> ---
> This patch is against the 'next' branch of Ulf Hansson's 'mmc.git' repo.
>
> drivers/mmc/host/renesas_sdhi_sys_dmac.c |    4 ++--
>  1 file changed, 2 insertions(+), 2 deletions(-)
>
> Index: mmc/drivers/mmc/host/renesas_sdhi_sys_dmac.c
> ===================================================================
> --- mmc.orig/drivers/mmc/host/renesas_sdhi_sys_dmac.c
> +++ mmc/drivers/mmc/host/renesas_sdhi_sys_dmac.c
> @@ -370,7 +370,7 @@ static void renesas_sdhi_sys_dmac_reques
>                 cfg.dst_addr = res->start +
>                         (CTL_SD_DATA_PORT << host->bus_shift);
>                 cfg.dst_addr_width = priv->dma_priv.dma_buswidth;
> -               if (!cfg.dst_addr_width)
> +               if (cfg.dst_addr_width == DMA_SLAVE_BUSWIDTH_UNDEFINED)
>                         cfg.dst_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
>                 cfg.src_addr = 0;
>                 ret = dmaengine_slave_config(host->chan_tx, &cfg);
> @@ -389,7 +389,7 @@ static void renesas_sdhi_sys_dmac_reques
>                 cfg.direction = DMA_DEV_TO_MEM;
>                 cfg.src_addr = cfg.dst_addr + host->pdata->dma_rx_offset;
>                 cfg.src_addr_width = priv->dma_priv.dma_buswidth;
> -               if (!cfg.src_addr_width)
> +               if (cfg.src_addr_width == DMA_SLAVE_BUSWIDTH_UNDEFINED)
>                         cfg.src_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
>                 cfg.dst_addr = 0;
>                 ret = dmaengine_slave_config(host->chan_rx, &cfg);
Vinod Koul Feb. 2, 2022, 4:13 a.m. UTC | #2
On 31-01-22, 17:26, Ulf Hansson wrote:
> + Vinod
> 
> On Fri, 21 Jan 2022 at 21:38, Sergey Shtylyov <s.shtylyov@omp.ru> wrote:
> >
> > The 'dma_slave_config::{src|dst}_addr_width' fields have the *enum* type
> > which isn't isomorphic with the *bool* type, however is used as a boolean
> > expression. Use the *enum* dma_slave_buswidth's value corresponding to 0
> > instead.
> >
> > Found by Linux Verification Center (linuxtesting.org) with the SVACE static
> > analysis tool.
> 
> I have no strong opinion, but just wanted to make sure this is inline
> with what Vinod wants.
> 
> There are not so many users checking DMA_SLAVE_BUSWIDTH_UNDEFINED,
> perhaps we should simply drop it and instead leave the checks below as
> is?

DMA_SLAVE_BUSWIDTH_UNDEFINED was defined as 0.
I think it might be overkill and should be fine to keep the check as
is..

> 
> >
> > Signed-off-by: Sergey Shtylyov <s.shtylyov@omp.ru>
> 
> Kind regards
> Uffe
> 
> >
> > ---
> > This patch is against the 'next' branch of Ulf Hansson's 'mmc.git' repo.
> >
> > drivers/mmc/host/renesas_sdhi_sys_dmac.c |    4 ++--
> >  1 file changed, 2 insertions(+), 2 deletions(-)
> >
> > Index: mmc/drivers/mmc/host/renesas_sdhi_sys_dmac.c
> > ===================================================================
> > --- mmc.orig/drivers/mmc/host/renesas_sdhi_sys_dmac.c
> > +++ mmc/drivers/mmc/host/renesas_sdhi_sys_dmac.c
> > @@ -370,7 +370,7 @@ static void renesas_sdhi_sys_dmac_reques
> >                 cfg.dst_addr = res->start +
> >                         (CTL_SD_DATA_PORT << host->bus_shift);
> >                 cfg.dst_addr_width = priv->dma_priv.dma_buswidth;
> > -               if (!cfg.dst_addr_width)
> > +               if (cfg.dst_addr_width == DMA_SLAVE_BUSWIDTH_UNDEFINED)
> >                         cfg.dst_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
> >                 cfg.src_addr = 0;
> >                 ret = dmaengine_slave_config(host->chan_tx, &cfg);
> > @@ -389,7 +389,7 @@ static void renesas_sdhi_sys_dmac_reques
> >                 cfg.direction = DMA_DEV_TO_MEM;
> >                 cfg.src_addr = cfg.dst_addr + host->pdata->dma_rx_offset;
> >                 cfg.src_addr_width = priv->dma_priv.dma_buswidth;
> > -               if (!cfg.src_addr_width)
> > +               if (cfg.src_addr_width == DMA_SLAVE_BUSWIDTH_UNDEFINED)
> >                         cfg.src_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
> >                 cfg.dst_addr = 0;
> >                 ret = dmaengine_slave_config(host->chan_rx, &cfg);
diff mbox series

Patch

Index: mmc/drivers/mmc/host/renesas_sdhi_sys_dmac.c
===================================================================
--- mmc.orig/drivers/mmc/host/renesas_sdhi_sys_dmac.c
+++ mmc/drivers/mmc/host/renesas_sdhi_sys_dmac.c
@@ -370,7 +370,7 @@  static void renesas_sdhi_sys_dmac_reques
 		cfg.dst_addr = res->start +
 			(CTL_SD_DATA_PORT << host->bus_shift);
 		cfg.dst_addr_width = priv->dma_priv.dma_buswidth;
-		if (!cfg.dst_addr_width)
+		if (cfg.dst_addr_width == DMA_SLAVE_BUSWIDTH_UNDEFINED)
 			cfg.dst_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
 		cfg.src_addr = 0;
 		ret = dmaengine_slave_config(host->chan_tx, &cfg);
@@ -389,7 +389,7 @@  static void renesas_sdhi_sys_dmac_reques
 		cfg.direction = DMA_DEV_TO_MEM;
 		cfg.src_addr = cfg.dst_addr + host->pdata->dma_rx_offset;
 		cfg.src_addr_width = priv->dma_priv.dma_buswidth;
-		if (!cfg.src_addr_width)
+		if (cfg.src_addr_width == DMA_SLAVE_BUSWIDTH_UNDEFINED)
 			cfg.src_addr_width = DMA_SLAVE_BUSWIDTH_2_BYTES;
 		cfg.dst_addr = 0;
 		ret = dmaengine_slave_config(host->chan_rx, &cfg);