Re: Recent and not-so problems with tifm_sd driver

Pierre Ossman
2007-02-17T23:51:05Z

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