Bug 80151

Summary: OOPS in "mmc_sdio_resume" functon during resume process
Product: Drivers Reporter: fuzhonghui (zhonghui.fu)
Component: MMC/SDAssignee: drivers_mmc-sd
Status: RESOLVED CODE_FIX    
Severity: high CC: alan, zhonghui.fu
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: Linux-3.16.0-rc4 Subsystem:
Regression: No Bisected commit-id:
Attachments: Propose a patch to fix this bug.

Description fuzhonghui 2014-07-14 01:53:37 UTC
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.
Comment 1 fuzhonghui 2014-07-30 02:34:12 UTC
Created attachment 144651 [details]
Propose a patch to fix this bug.