Hi Wolfram.. 2011/4/9 Wolfram Sang <w.sang@xxxxxxxxxxxxxx>: > Hi, > > On Tue, Apr 05, 2011 at 05:02:19PM +0900, Jaehoon Chung wrote: >> Sometimes we can't add the device,but we didn't check any error status. >> Need to check error status for mmc_add_host. >> >> Signed-off-by: Jaehoon Chung <jh80.chung@xxxxxxxxxxx> >> Signed-off-by: Kyungin Park <kyungmin.park@xxxxxxxxxxx> >> --- >> drivers/mmc/host/sdhci.c | 20 ++++++++++++++++++-- >> 1 files changed, 18 insertions(+), 2 deletions(-) >> >> diff --git a/drivers/mmc/host/sdhci.c b/drivers/mmc/host/sdhci.c >> index 9e15f41..1768ffb 100644 >> --- a/drivers/mmc/host/sdhci.c >> +++ b/drivers/mmc/host/sdhci.c >> @@ -2025,7 +2025,9 @@ int sdhci_add_host(struct sdhci_host *host) >> >> mmiowb(); >> >> - mmc_add_host(mmc); >> + ret = mmc_add_host(mmc); >> + if (unlikely(ret)) >> + goto err_free_mmc; >> >> printk(KERN_INFO "%s: SDHCI controller on %s [%s] using %s\n", >> mmc_hostname(mmc), host->hw_name, dev_name(mmc_dev(mmc)), >> @@ -2036,15 +2038,29 @@ int sdhci_add_host(struct sdhci_host *host) >> >> return 0; >> >> +err_free_mmc: >> + mmc_remove_host(host); > > As I asked in my last review: Why do you remove the host when add_host failed? > Doesn't that crash? > >> + >> #ifdef SDHCI_USE_LEDS_CLASS >> + led_classdev_ungregister(&host->led); >> reset: >> +#endif >> sdhci_reset(host, SDHCI_RESET_ALL); >> free_irq(host->irq, host); >> -#endif >> + del_timer_sync(&host->timer); >> + >> untasklet: >> tasklet_kill(&host->card_tasklet); >> tasklet_kill(&host->finish_tasklet); >> >> + if (host->flags & SDHCI_USE_ADMA) { >> + kfree(host->adma_desc); >> + kfree(host->align_buffer); >> + >> + host->adma_desc = NULL; >> + host->align_buffer = NULL; >> + } > > The if-condition is not needed, kfree is NULL-safe. I'll remove that..Thanks for your reviewed Regards, Jaehoon Chung > >> + >> return ret; >> } >> > > -- > Pengutronix e.K. | Wolfram Sang | > Industrial Linux Solutions | http://www.pengutronix.de/ | > > -----BEGIN PGP SIGNATURE----- > Version: GnuPG v1.4.9 (GNU/Linux) > > iEYEARECAAYFAk2fVJ0ACgkQD27XaX1/VRsZFwCgsgZ567Z5EP981NF4/cEXG9z/ > HvAAoMFOud43MnfeKNDX2/HCBKBdVnJu > =RTub > -----END PGP SIGNATURE----- > > -- 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