Hi, On Fri, Jun 29 2012, Aaron Lu wrote: > Add a new flag of SDHCI_NEEDS_RETUNING_TIMER to represent if the host > needs retuning timer currently when driving the card inserted. > > This flag is set when the host does tuning the first time for the card > and is used afterwards whenever needs to decide if the host is currently > using a retuning timer. > > This flag is cleared when the card is removed in sdhci_reinit. > > The set/clear of the flag and the start/stop of the retuning timer is > associated with the card's init/remove time, so there is no need to > touch it when the host is to be removed as at that time the card should > have already been removed. [...] > @@ -3097,10 +3092,6 @@ void sdhci_remove_host(struct sdhci_host *host, int dead) > > free_irq(host->irq, host); > > - del_timer_sync(&host->timer); > - if (host->version >= SDHCI_SPEC_300) > - del_timer_sync(&host->tuning_timer); > - > tasklet_kill(&host->card_tasklet); > tasklet_kill(&host->finish_tasklet); The last paragraph of the commit message explains why you remove the del_timer_sync() call on the tuning_timer; but why do you remove it from the main (timeouts) host->timer too? Thanks, - Chris. -- Chris Ball <cjb@xxxxxxxxxx> <http://printf.net/> One Laptop Per Child -- To unsubscribe from this list: send the line "unsubscribe linux-mmc" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html