The function image_boot_mode_id() converts the name of a boot media
into the corresponding Marvell specific code. However, 0 that we
currently used to indicate that the boot media name wasn't found,
could potentially be a valid value. So instead we use -1 to indicate a
failure.

This is also done in preparation to the introduction of
image_nand_ecc_mode_id(), which will convert a NAND ECC mode name into
the corresponding identifier. And in this case 0 is a valid identifier
of a NAND ECC mode, so we cannot use it to indicate a failure. Since
we want image_boot_mode_id() and image_nand_ecc_mode_id() to have a
consistent behavior, we change the former in this commit. The latter
is introduced in the next commit.

Signed-off-by: Thomas Petazzoni <thomas.petazz...@free-electrons.com>
---
 scripts/kwbimage.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/scripts/kwbimage.c b/scripts/kwbimage.c
index 631f131..0127e2b 100644
--- a/scripts/kwbimage.c
+++ b/scripts/kwbimage.c
@@ -226,14 +226,14 @@ static const char *image_boot_mode_name(unsigned int id)
        return NULL;
 }
 
-unsigned int image_boot_mode_id(const char *boot_mode_name)
+int image_boot_mode_id(const char *boot_mode_name)
 {
        int i;
        for (i = 0; boot_modes[i].name; i++)
                if (!strcmp(boot_modes[i].name, boot_mode_name))
                        return boot_modes[i].id;
 
-       return 0;
+       return -1;
 }
 
 static const char *image_nand_ecc_mode_name(unsigned int id)
@@ -987,7 +987,7 @@ static int image_create_config_parse_oneline(char *line,
                char *value = strtok_r(NULL, " ", &saveptr);
                el->type = IMAGE_CFG_BOOT_FROM;
                el->bootfrom = image_boot_mode_id(value);
-               if (!el->bootfrom) {
+               if (el->bootfrom < 0) {
                        fprintf(stderr,
                                "Invalid boot media '%s'\n", value);
                        return -1;
-- 
1.7.9.5


_______________________________________________
barebox mailing list
barebox@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/barebox

Reply via email to