Re: [PATCH] mmc: host: meson-gx-mmc: fix possible deadlock condition for preempt_rt
From: Kevin Hilman
Date: Thu Sep 24 2020 - 13:01:44 EST
Hi Brad,
Brad Harper <bjharper@xxxxxxxxx> 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...
[...]
> Signed-off-by: Brad Harper <bjharper@xxxxxxxxx>
> ---
> drivers/mmc/host/meson-gx-mmc.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/drivers/mmc/host/meson-gx-mmc.c
> b/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