Skip to content

Commit

Permalink
spi: geni-qcom: Fix incorrect free_irq() sequence
Browse files Browse the repository at this point in the history
In spi_geni_remove(), the free_irq() sequence is different from that
on the probe error path. And the IRQ will still remain and it's interrupt
handler may use the dma channel after release dma channel and before free
irq, which is not secure, fix it.

Fixes: b59c122 ("spi: spi-geni-qcom: Add support for GPI dma")
Signed-off-by: Jinjie Ruan <ruanjinjie@huawei.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://patch.msgid.link/20240909073141.951494-3-ruanjinjie@huawei.com
Signed-off-by: Mark Brown <broonie@kernel.org>
  • Loading branch information
Jinjie Ruan authored and Mark Brown committed Sep 9, 2024
1 parent 89e362c commit b787a33
Showing 1 changed file with 2 additions and 2 deletions.
4 changes: 2 additions & 2 deletions drivers/spi/spi-geni-qcom.c
Original file line number Diff line number Diff line change
Expand Up @@ -1170,9 +1170,9 @@ static void spi_geni_remove(struct platform_device *pdev)
/* Unregister _before_ disabling pm_runtime() so we stop transfers */
spi_unregister_controller(spi);

spi_geni_release_dma_chan(mas);

free_irq(mas->irq, spi);

spi_geni_release_dma_chan(mas);
}

static int __maybe_unused spi_geni_runtime_suspend(struct device *dev)
Expand Down

0 comments on commit b787a33

Please sign in to comment.