The statement "mmc->caps2 |= MMC_CAP2_SDIO_IRQ_NOTHREAD;" is added in "sdhci_add_host" function in drivers/mmc/host/sdhci.c file from 3.16.0-rc1 on. "sdio_card_irq_get" function in drivers/mmc/core/sdio_irq.c file: if (!(host->caps2 & MMC_CAP2_SDIO_IRQ_NOTHREAD)) { /* the condition is false */ atomic_set(&host->sdio_irq_thread_abort, 0); host->sdio_irq_thread = kthread_run(sdio_irq_thread, host, "ksdioirqd/%s", mmc_hostname(host)); This will make "host->sdio_irq_thread" a NULL pointer in "mmc_sdio_resume" functon of drivers/mmc/core/sdio.c file.
Created attachment 144651 [details] Propose a patch to fix this bug.