Messages in this thread Patch in this message | | | From | Chris Ball <> | Subject | Re: One bug of SDHCI driver | Date | Mon, 14 Jul 2014 14:26:36 +0100 |
| |
Hi Zhonghui,
On Tue, Jul 08 2014, Fu, Zhonghui wrote: > Why add "mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD;" ? How to fix this bug? > > Could you please give out some idea about this bug?
Jaehoon already gave you a patch to fix this bug. Here it is again in proper patch form. Please can you test it and let us know whether it fixes the crash? Thanks.
From: Chris Ball <chris@printf.net> Subject: [PATCH] mmc: core: sdio: Fix unconditional wake_up_process() on sdio thread
781e989cf59 ("mmc: sdhci: convert to new SDIO IRQ handling") and bf3b5ec66bd ("mmc: sdio_irq: rework sdio irq handling") disabled the use of our own custom threaded IRQ handler, but left in an unconditional wake_up_process() on that handler at resume-time.
Reported-by: Fu, Zhonghui <zhonghui.fu@linux.intel.com> [Patch suggested by Jaehoon Chung] Signed-off-by: Chris Ball <chris@printf.net> --- drivers/mmc/core/sdio.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mmc/core/sdio.c b/drivers/mmc/core/sdio.c index e636d9e..2a128e2 100644 --- a/drivers/mmc/core/sdio.c +++ b/drivers/mmc/core/sdio.c @@ -992,7 +992,8 @@ static int mmc_sdio_resume(struct mmc_host *host) } } - if (!err && host->sdio_irqs) + if (!err && host->sdio_irqs && + !(host->quirks & MMC_CAP2_SDIO_IRQ_NOTHREAD)) wake_up_process(host->sdio_irq_thread); mmc_release_host(host); -- Chris Ball <http://printf.net/>
| |