diff mbox series

mmc: renesas_sdhi_sys_dmac: use DMA_SLAVE_BUSWIDTH_UNDEFINED

Message ID 5e22c587-5698-e132-4429-48674a6ddbb7@omp.ru
State New
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);
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);