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@xxxxxx> --- 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);