Who wakes the kthreadd daemon during SD card read?
I would like to know who wakes the kthread daemon up, when a read from the SD card is done using vfs_read. According to the code flow the kthreadd will wake up the mmcqd (mmc_queue_thread) which will process the read/write requests to the SD driver.
The issue I am facing here is although the vfs_read to the SD card is called by the USB Mass Storage driver, the read does not proceed to the mmc_queue_thread. This leads to old contents of the SD card being shown on PC.
Here is the kernel stack after vfs_read generated from sdhci_send_command(). ------------[ cut here ]------------ WARNING: at /vobs/iandroid/src/kernel/drivers/mmc/host/mx_sdhci.c:495 sdhci_send_command+0x120/0x758() Modules linked in: g_mot_android mxc91341_oh_udc sipcttydrv aplogger coredump bploader sipcdrv mu_drv  (dump_stack+0x0/0x14) from  (warn_slowpath+0x68/0x84)
 (warn_slowpath+0x0/0x84) from  (sdhci_send_command+0x120/0x758) r3:00000033 r2:00000000 r7:c6605f04 r6:c6605f5c r5:c65305c0 r4:c0409510
 (sdhci_send_command+0x0/0x758) from  (sdhci_request+0x188/0x1bc)
 (sdhci_request+0x0/0x1bc) from  (mmc_wait_for_req+0x110/0x128) r8:c656f870 r7:c6605dc8 r6:00000000 r5:c6530400 r4:c6605ef0
 (mmc_wait_for_req+0x0/0x128) from  (mmc_blk_issue_rq+0x1f4/0x7b0) r7:c642ae00 r6:00000000 r5:c64daeac r4:c64daea0
 (mmc_blk_issue_rq+0x0/0x7b0) from  (mmc_queue_thread+0x134/0x154)
 (mmc_queue_thread+0x0/0x154) from  (kthread+0x54/0x80) r8:00000000 r7:00000000 r6:00000000 r5:c0248330 r4:fffffffc
 (kthread+0x0/0x80) from  (do_exit+0x0/0x738) r5:00000000 r4:00000000 ---[ end trace 24b57c573e7a44e3 ]---