diff --git a/common/cmd_mmc.c b/common/cmd_mmc.c
index 7335cdc7577799ff380de9167ec01e2b04c6ef4c..8f13c22d9baba16c2ab6a975a129901987618b33 100644
--- a/common/cmd_mmc.c
+++ b/common/cmd_mmc.c
@@ -173,9 +173,11 @@ int do_mmcops(cmd_tbl_t *cmdtp, int flag, int argc, char * const argv[])
 		}
 
 		mmc->has_init = 0;
-		mmc_init(mmc);
 
-		return 0;
+		if (mmc_init(mmc))
+			return 1;
+		else
+			return 0;
 	} else if (strncmp(argv[1], "part", 4) == 0) {
 		block_dev_desc_t *mmc_dev;
 		struct mmc *mmc = find_mmc_device(curr_device);