Re: [PATCH v2 1/2] spi: geni-qcom: Fix incorrect free_irq() sequence

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Jinjie,

On 9/6/2024 8:43 AM, Jinjie Ruan wrote:
In spi_geni_remove(), 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.

What's the possibility of having irq if spi_geni_release_dma_chan(mas) is completed ? As such controller is already unregistered so transfer request can't come.
Fixes: b59c122484ec ("spi: spi-geni-qcom: Add support for GPI dma")
Signed-off-by: Jinjie Ruan <ruanjinjie@xxxxxxxxxx>
---
  drivers/spi/spi-geni-qcom.c | 3 ++-
  1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/spi/spi-geni-qcom.c b/drivers/spi/spi-geni-qcom.c
index 37ef8c40b276..fc2819effe2d 100644
--- a/drivers/spi/spi-geni-qcom.c
+++ b/drivers/spi/spi-geni-qcom.c
@@ -1170,9 +1170,10 @@ static void spi_geni_remove(struct platform_device *pdev)
  	/* Unregister _before_ disabling pm_runtime() so we stop transfers */
  	spi_unregister_controller(spi);
+ free_irq(mas->irq, spi);
+
  	spi_geni_release_dma_chan(mas);
- free_irq(mas->irq, spi);
  	pm_runtime_disable(&pdev->dev);
  }




[Index of Archives]     [Linux Kernel]     [Linux ARM (vger)]     [Linux ARM MSM]     [Linux Omap]     [Linux Arm]     [Linux Tegra]     [Fedora ARM]     [Linux for Samsung SOC]     [eCos]     [Linux Fastboot]     [Gcc Help]     [Git]     [DCCP]     [IETF Announce]     [Security]     [Linux MIPS]     [Yosemite Campsites]

  Powered by Linux