Re: [PATCH] mmc: host: meson-gx-mmc: fix possible deadlock condition for preempt_rt
From: Kevin Hilman <khilman@baylibre.com>
Date: 2020-09-24 17:01:44
Also in:
linux-amlogic, linux-mmc, linux-rt-users, lkml
Hi Brad, Brad Harper [off-list ref] writes:
Force threaded interrupts for meson_mmc_irq to prevent possible deadlock condition during mmc operations when using preempt_rt with 5.9.0-rc3-rt3 patches on arm64. Using meson-gx-mmc with an emmc device on Hardkernel Odroid N2+ configured with preempt_rt resulted in the soc becoming unresponsive. With lock checking enabled the below inconsistent lock state was observed during boot. After some discussions with tglx in IRC #linux-rt the attached patch was suggested to remove IRQF_ONESHOT from request_threaded_irq. This has been tested and confirmed by me to resolve both the unresponsive soc and the inconsistent lock state warning when using 5.9.0-rc3-rt3 on arm64 Odroid N2+. Further review and testing is required to ensure there are no adverse impacts or concerns and that is the correct method to resolve the problem. I will continue to test on various amlogic devices with both standard mainline low latency kernel and preempt_rt kernel with -rt patches.
This looks right to me, thanks for sending a fix. For broader testing, I can add this to my testing branch so it gets booted on a bunch more platform in KernelCI also. However... [...]
quoted hunk ↗ jump to hunk
Signed-off-by: Brad Harper <redacted> --- drivers/mmc/host/meson-gx-mmc.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)diff --git a/drivers/mmc/host/meson-gx-mmc.cb/drivers/mmc/host/meson-gx-mmc.c index 08a3b1c05..130ac134d 100644--- a/drivers/mmc/host/meson-gx-mmc.c +++ b/drivers/mmc/host/meson-gx-mmc.c@@ -1139,7 +1139,7 @@ static int meson_mmc_probe(struct platform_device*pdev) host->regs + SD_EMMC_IRQ_EN); ret = request_threaded_irq(host->irq, meson_mmc_irq, - meson_mmc_irq_thread, IRQF_ONESHOT, + meson_mmc_irq_thread, 0, dev_name(&pdev->dev), host); if (ret) goto err_init_clk;
This patch has been mangled by your mailer, so it doesn't apply cleanly. If you're using the gmail web UI, this is a common problem. I strongly recommend using git-send-email to send directly via gmail SMTP. The git-send-email docs[1] give some examples on how to set this up. Kevin [1] https://git-scm.com/docs/git-send-email#_examples _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel