Alex Dubov wrote: > > It just occurred to me that my synopsis of the problem was utterly lame. > Here, the correct description: > When the card is pulled out, I mark the host as "ejected" (so it fast-fails > all the requests), > sleep a little for it to relax and then call mmc_remove_host. Otherwise, > nasty things happen. > Here's the example not involving mmc_block at all (command 3 failed, hardware > timeout was missed, > so software timeout picked it up; the sleep hack is disabled): >
I believe your problem is line 915 of tifm_sd.c: > tifm_set_drvdata(sock, NULL); You call that before mmc_free_host() (which flushes the work queue), and I assume something still needs it. Put in some BUG_ON() here and there and you should be able to catch it. Rgds -- -- Pierre Ossman Linux kernel, MMC maintainer http://www.kernel.org PulseAudio, core developer http://pulseaudio.org rdesktop, core developer http://www.rdesktop.org - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/