Hi, The data type of "host" is "struct mmc_host", and there is not "quirks" member in this structure. Thanks, Zhonghui On 2014/7/14 21:26, Chris Ball wrote: > 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@xxxxxxxxxx> > 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@xxxxxxxxxxxxxxx> > [Patch suggested by Jaehoon Chung] > Signed-off-by: Chris Ball <chris@xxxxxxxxxx> > --- > 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); > -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html