lkml.org 
[lkml]   [2022]   [Jun]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5.15 209/667] spi: spi-ti-qspi: Fix return value handling of wait_for_completion_timeout
    Date
    From: Miaoqian Lin <linmq006@gmail.com>

    [ Upstream commit 8b1ea69a63eb62f97cef63e6d816b64ed84e8760 ]

    wait_for_completion_timeout() returns unsigned long not int.
    It returns 0 if timed out, and positive if completed.
    The check for <= 0 is ambiguous and should be == 0 here
    indicating timeout which is the only error case.

    Fixes: 5720ec0a6d26 ("spi: spi-ti-qspi: Add DMA support for QSPI mmap read")
    Signed-off-by: Miaoqian Lin <linmq006@gmail.com>
    Link: https://lore.kernel.org/r/20220411111034.24447-1-linmq006@gmail.com
    Signed-off-by: Mark Brown <broonie@kernel.org>
    Signed-off-by: Sasha Levin <sashal@kernel.org>
    ---
    drivers/spi/spi-ti-qspi.c | 5 +++--
    1 file changed, 3 insertions(+), 2 deletions(-)

    diff --git a/drivers/spi/spi-ti-qspi.c b/drivers/spi/spi-ti-qspi.c
    index e06aafe169e0..081da1fd3fd7 100644
    --- a/drivers/spi/spi-ti-qspi.c
    +++ b/drivers/spi/spi-ti-qspi.c
    @@ -448,6 +448,7 @@ static int ti_qspi_dma_xfer(struct ti_qspi *qspi, dma_addr_t dma_dst,
    enum dma_ctrl_flags flags = DMA_CTRL_ACK | DMA_PREP_INTERRUPT;
    struct dma_async_tx_descriptor *tx;
    int ret;
    + unsigned long time_left;

    tx = dmaengine_prep_dma_memcpy(chan, dma_dst, dma_src, len, flags);
    if (!tx) {
    @@ -467,9 +468,9 @@ static int ti_qspi_dma_xfer(struct ti_qspi *qspi, dma_addr_t dma_dst,
    }

    dma_async_issue_pending(chan);
    - ret = wait_for_completion_timeout(&qspi->transfer_complete,
    + time_left = wait_for_completion_timeout(&qspi->transfer_complete,
    msecs_to_jiffies(len));
    - if (ret <= 0) {
    + if (time_left == 0) {
    dmaengine_terminate_sync(chan);
    dev_err(qspi->dev, "DMA wait_for_completion_timeout\n");
    return -ETIMEDOUT;
    --
    2.35.1


    \
     
     \ /
      Last update: 2022-06-07 20:40    [W:2.269 / U:0.532 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site