lkml.org 
[lkml]   [2021]   [Sep]   [13]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.14 059/334] spi: spi-fsl-dspi: Fix issue with uninitialized dma_slave_config
    Date
    From: Tony Lindgren <tony@atomide.com>

    [ Upstream commit 209ab223ad5b18e437289235e3bde12593b94ac4 ]

    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 spi-fsl-dspi, this is probably not currently an issue but is still
    good to fix though.

    Fixes: 90ba37033cb9 ("spi: spi-fsl-dspi: Add DMA support for Vybrid")
    Cc: Sanchayan Maity <maitysanchayan@gmail.com>
    Cc: Vladimir Oltean <vladimir.oltean@nxp.com>
    Cc: Peter Ujfalusi <peter.ujfalusi@gmail.com>
    Cc: Vinod Koul <vkoul@kernel.org>
    Signed-off-by: Tony Lindgren <tony@atomide.com>
    Acked-by: Vladimir Oltean <vladimir.oltean@nxp.com>
    Link: https://lore.kernel.org/r/20210810081727.19491-1-tony@atomide.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/spi/spi-fsl-dspi.c | 1 +
    1 file changed, 1 insertion(+)

    diff --git a/drivers/spi/spi-fsl-dspi.c b/drivers/spi/spi-fsl-dspi.c
    index fb45e6af6638..fd004c9db9dc 100644
    --- a/drivers/spi/spi-fsl-dspi.c
    +++ b/drivers/spi/spi-fsl-dspi.c
    @@ -530,6 +530,7 @@ static int dspi_request_dma(struct fsl_dspi *dspi, phys_addr_t phy_addr)
    goto err_rx_dma_buf;
    }

    + memset(&cfg, 0, sizeof(cfg));
    cfg.src_addr = phy_addr + SPI_POPR;
    cfg.dst_addr = phy_addr + SPI_PUSHR;
    cfg.src_addr_width = DMA_SLAVE_BUSWIDTH_4_BYTES;
    --
    2.30.2


    \
     
     \ /
      Last update: 2021-09-13 16:26    [W:4.076 / U:0.176 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site