Commit aa80eb72 authored by Jinjie Ruan's avatar Jinjie Ruan Committed by Wen Zhiwei
Browse files

spi: geni-qcom: Fix incorrect free_irq() sequence

stable inclusion
from stable-v6.6.52
commit f9e08c201705a68b229f2fb1198c5f84d9303dba
category: bugfix
bugzilla: https://gitee.com/openeuler/kernel/issues/IAYXOD

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=f9e08c201705a68b229f2fb1198c5f84d9303dba



--------------------------------

[ Upstream commit b787a33864121a565aeb0e88561bf6062a19f99c ]

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: b59c1224 ("spi: spi-geni-qcom: Add support for GPI dma")
Signed-off-by: default avatarJinjie Ruan <ruanjinjie@huawei.com>
Reviewed-by: default avatarDmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://patch.msgid.link/20240909073141.951494-3-ruanjinjie@huawei.com


Signed-off-by: default avatarMark Brown <broonie@kernel.org>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
Signed-off-by: default avatarWen Zhiwei <wenzhiwei@kylinos.cn>
parent e0ff1273
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -1170,9 +1170,9 @@ static void spi_geni_remove(struct platform_device *pdev)
	/* Unregister _before_ disabling pm_runtime() so we stop transfers */
	spi_unregister_master(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)