diff mbox series

[2/3] mmc: dw_mmc: Fix issue with uninitialized dma_slave_config

Message ID 20210810081644.19353-2-tony@atomide.com (mailing list archive)
State New, archived
Headers show
Series [1/3] mmc: sdhci: Fix issue with uninitialized dma_slave_config | expand

Commit Message

Tony Lindgren Aug. 10, 2021, 8:16 a.m. UTC
Depending on the DMA driver being used, the struct dma_slave_config may
need to be initialized to zero for the unused data.

For example, we have three DMA drivers using src_port_window_size and
dst_port_window_size. If these are left uninitialized, it can cause DMA
failures.

For dw_mmc, this is probably not currently an issue but is still good to
fix though.

Fixes: 3fc7eaef44db ("mmc: dw_mmc: Add external dma interface support")
Cc: Shawn Lin <shawn.lin@rock-chips.com>
Cc: Jaehoon Chung <jh80.chung@samsung.com>
Cc: Peter Ujfalusi <peter.ujfalusi@gmail.com>
Cc: Vinod Koul <vkoul@kernel.org>
Signed-off-by: Tony Lindgren <tony@atomide.com>
---
 drivers/mmc/host/dw_mmc.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Ulf Hansson Aug. 16, 2021, 1:59 p.m. UTC | #1
On Tue, 10 Aug 2021 at 10:16, Tony Lindgren <tony@atomide.com> wrote:
>
> Depending on the DMA driver being used, the struct dma_slave_config may
> need to be initialized to zero for the unused data.
>
> For example, we have three DMA drivers using src_port_window_size and
> dst_port_window_size. If these are left uninitialized, it can cause DMA
> failures.
>
> For dw_mmc, this is probably not currently an issue but is still good to
> fix though.
>
> Fixes: 3fc7eaef44db ("mmc: dw_mmc: Add external dma interface support")
> Cc: Shawn Lin <shawn.lin@rock-chips.com>
> Cc: Jaehoon Chung <jh80.chung@samsung.com>
> Cc: Peter Ujfalusi <peter.ujfalusi@gmail.com>
> Cc: Vinod Koul <vkoul@kernel.org>
> Signed-off-by: Tony Lindgren <tony@atomide.com>

Applied for next, thanks!

Kind regards
Uffe


> ---
>  drivers/mmc/host/dw_mmc.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
> --- a/drivers/mmc/host/dw_mmc.c
> +++ b/drivers/mmc/host/dw_mmc.c
> @@ -782,6 +782,7 @@ static int dw_mci_edmac_start_dma(struct dw_mci *host,
>         int ret = 0;
>
>         /* Set external dma config: burst size, burst width */
> +       memset(&cfg, 0, sizeof(cfg));
>         cfg.dst_addr = host->phy_regs + fifo_offset;
>         cfg.src_addr = cfg.dst_addr;
>         cfg.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
> --
> 2.32.0
diff mbox series

Patch

diff --git a/drivers/mmc/host/dw_mmc.c b/drivers/mmc/host/dw_mmc.c
--- a/drivers/mmc/host/dw_mmc.c
+++ b/drivers/mmc/host/dw_mmc.c
@@ -782,6 +782,7 @@  static int dw_mci_edmac_start_dma(struct dw_mci *host,
 	int ret = 0;
 
 	/* Set external dma config: burst size, burst width */
+	memset(&cfg, 0, sizeof(cfg));
 	cfg.dst_addr = host->phy_regs + fifo_offset;
 	cfg.src_addr = cfg.dst_addr;
 	cfg.dst_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;