Re: Recent and not-so problems with tifm_sd driver

From: Alex Dubov
Date: Sun Feb 18 2007 - 09:19:33 EST


>
> 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.
http://autos.yahoo.com/new_cars.html
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/