Re: Recent and not-so problems with tifm_sd driver

Alex Dubov
2007-02-18T14:19:05Z

>
> I don't see how that is possible. mmc_block's remove routine waits for mmcqd to
> exit, so there can't be any code still alive that has a request going. (I am
> also completely unable to reproduce this problem here).
>
> Add more printk:s do verify how the code in mmc_block executes.
>
This is hard to trigger problem, so I'll spare you the rather lengthy log.
It happens if card timeouts and mmc_remove_host is called while mmc_register_card is still in
progress (the hint was in crash dump). If I sleep before remove, it gives the mmc_register_card
chance to finish/mark card as dead and everything's fine.
The remove callback of mmc_block is apparently not executed in this case (probably because device
has not finished registering).

My proposition: lets flush the workqueue first thing in the mmc_remove_host (and make sure that
nothing gets scheduled into it after this).

____________________________________________________________________________________
Don't pick lemons.
See all the new 2007 cars at Yahoo! Autos.