Alex Dubov wrote: > I removed that line altogether (it does not really needed as mmc host will > not be accessed > anymore). The problem is more elaborate. Here, the card fails, > mmc_host_remove is called without > sleep beforehand, and "after remove" message is printed immediately after it. > Only then, mmc_block > remembers to finish its business. If I leave the sleep in place, mmc_block's > stuff will get > scheduled before the mmc_remove_host and everything will be all right. > You may also notice that host is already powered off ("Setting ... power 0" > message) and still > mmc_block continues to make requests like nothing happened. >
I don't actually think that is what happening. The block errors tend to trail a bit behind, so the errors you are seeing are probably the result of the queue being flushed out as you remove the card. I don't see any mmc debug messages that indicate that is trying to send more mmc requests. You could add a printk to the queue thread in mmc_queue.c. That will allow you to see exactly when it exits (which should be before mmc_remove_host() returns). 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/