/*if there are external regulators, get them*/
        ret = mmc_regulator_get_supply(mmc);
        if (ret == -EPROBE_DEFER)
-               goto err_setup_bus;
+               goto err_host_allocated;
 
        if (!mmc->ocr_avail)
                mmc->ocr_avail = MMC_VDD_32_33 | MMC_VDD_33_34;
        if (host->pdata->caps2)
                mmc->caps2 = host->pdata->caps2;
 
-       mmc_of_parse(mmc);
+       ret = mmc_of_parse(mmc);
+       if (ret)
+               goto err_host_allocated;
 
        if (host->pdata->blk_settings) {
                mmc->max_segs = host->pdata->blk_settings->max_segs;
 
        ret = mmc_add_host(mmc);
        if (ret)
-               goto err_setup_bus;
+               goto err_host_allocated;
 
 #if defined(CONFIG_DEBUG_FS)
        dw_mci_init_debugfs(slot);
 
        return 0;
 
-err_setup_bus:
+err_host_allocated:
        mmc_free_host(mmc);
        return ret;
 }