env: make env drivers propagate env_import return value

For multiple env drivers to correctly implement fallback when
one environment fails to load (e.g. crc error), the return value
of env_import has to be propagated by all env driver's load
function.

Without this change, the first driver that succeeds to load an
environment with an invalid CRC return 0 (success) and no other
drivers are checked.

Signed-off-by: Simon Goldschmidt <sgoldschmidt@de.pepperl-fuchs.com>
Acked-by: Maxime Ripard <maxime.ripard@free-electrons.com>
diff --git a/env/eeprom.c b/env/eeprom.c
index 584379e..55d19d9 100644
--- a/env/eeprom.c
+++ b/env/eeprom.c
@@ -181,9 +181,7 @@
 	eeprom_bus_read(CONFIG_SYS_DEF_EEPROM_ADDR,
 		off, (uchar *)buf_env, CONFIG_ENV_SIZE);
 
-	env_import(buf_env, 1);
-
-	return 0;
+	return env_import(buf_env, 1);
 }
 
 static int env_eeprom_save(void)
diff --git a/env/ext4.c b/env/ext4.c
index 9cdf28e..3f3aac5 100644
--- a/env/ext4.c
+++ b/env/ext4.c
@@ -114,8 +114,7 @@
 		goto err_env_relocate;
 	}
 
-	env_import(buf, 1);
-	return 0;
+	return env_import(buf, 1);
 
 err_env_relocate:
 	set_default_env(NULL);
diff --git a/env/fat.c b/env/fat.c
index 158a9a3..35f7ab5 100644
--- a/env/fat.c
+++ b/env/fat.c
@@ -117,8 +117,7 @@
 		goto err_env_relocate;
 	}
 
-	env_import(buf, 1);
-	return 0;
+	return env_import(buf, 1);
 
 err_env_relocate:
 	set_default_env(NULL);
diff --git a/env/flash.c b/env/flash.c
index bac10ff..ccade77 100644
--- a/env/flash.c
+++ b/env/flash.c
@@ -351,9 +351,7 @@
 		     "reading environment; recovered successfully\n\n");
 #endif /* CONFIG_ENV_ADDR_REDUND */
 
-	env_import((char *)flash_addr, 1);
-
-	return 0;
+	return env_import((char *)flash_addr, 1);
 }
 #endif /* LOADENV */
 
diff --git a/env/mmc.c b/env/mmc.c
index 8847fdc..1058b8c 100644
--- a/env/mmc.c
+++ b/env/mmc.c
@@ -332,8 +332,7 @@
 		goto fini;
 	}
 
-	env_import(buf, 1);
-	ret = 0;
+	ret = env_import(buf, 1);
 
 fini:
 	fini_mmc_for_env(mmc);
diff --git a/env/nand.c b/env/nand.c
index 3e8df39..904f1c4 100644
--- a/env/nand.c
+++ b/env/nand.c
@@ -378,7 +378,7 @@
 		return -EIO;
 	}
 
-	env_import(buf, 1);
+	return env_import(buf, 1);
 #endif /* ! ENV_IS_EMBEDDED */
 
 	return 0;
diff --git a/env/nvram.c b/env/nvram.c
index c8b3475..6f76fe4 100644
--- a/env/nvram.c
+++ b/env/nvram.c
@@ -60,9 +60,7 @@
 #else
 	memcpy(buf, (void *)CONFIG_ENV_ADDR, CONFIG_ENV_SIZE);
 #endif
-	env_import(buf, 1);
-
-	return 0;
+	return env_import(buf, 1);
 }
 
 static int env_nvram_save(void)
diff --git a/env/remote.c b/env/remote.c
index c013fdd..379d0eb 100644
--- a/env/remote.c
+++ b/env/remote.c
@@ -49,7 +49,7 @@
 static int env_remote_load(void)
 {
 #ifndef ENV_IS_EMBEDDED
-	env_import((char *)env_ptr, 1);
+	return env_import((char *)env_ptr, 1);
 #endif
 
 	return 0;
diff --git a/env/sata.c b/env/sata.c
index a770297..4bfe011 100644
--- a/env/sata.c
+++ b/env/sata.c
@@ -113,9 +113,7 @@
 		return -EIO;
 	}
 
-	env_import(buf, 1);
-
-	return 0;
+	return env_import(buf, 1);
 }
 
 U_BOOT_ENV_LOCATION(sata) = {
diff --git a/env/ubi.c b/env/ubi.c
index 72c7a78..d4f4901 100644
--- a/env/ubi.c
+++ b/env/ubi.c
@@ -163,9 +163,7 @@
 		return -EIO;
 	}
 
-	env_import(buf, 1);
-
-	return 0;
+	return env_import(buf, 1);
 }
 #endif /* CONFIG_SYS_REDUNDAND_ENVIRONMENT */