cmd_bootm.c: Correct check/return for unsupported sub-command
authorTom Rini <trini@ti.com>
Mon, 1 Jul 2013 13:09:23 +0000 (09:09 -0400)
committerTom Rini <trini@ti.com>
Thu, 4 Jul 2013 14:53:38 +0000 (10:53 -0400)
With the do_bootm_states re-organization, we have the call to any
potential sub-commands in a single spot.  If one fails, we can then stop
right there and return to the caller.  Prior to these calls we have
already ensured that ret is zero so we will not be returning this error
for some other case.

Signed-off-by: Tom Rini <trini@ti.com>
Tested-by: Andreas Bießmann <andreas.devel@googlemail.com>
common/cmd_bootm.c

index 02a5013c04186ad8b159886f3027b2535e576ef4..a36e0197f55c5e44cdef15d2a31d29bc2d264cc6 100644 (file)
@@ -669,6 +669,13 @@ static int do_bootm_states(cmd_tbl_t *cmdtp, int flag, int argc,
        if (!ret && (states & BOOTM_STATE_OS_PREP))
                ret = boot_fn(BOOTM_STATE_OS_PREP, argc, argv, images);
 
+       /* Check for unsupported subcommand. */
+       if (ret) {
+               puts("subcommand not supported\n");
+               return ret;
+       }
+
+
 #ifdef CONFIG_TRACE
        /* Pretend to run the OS, then run a user command */
        if (!ret && (states & BOOTM_STATE_OS_FAKE_GO)) {
@@ -699,8 +706,6 @@ err:
                bootstage_error(BOOTSTAGE_ID_DECOMP_UNIMPL);
        else if (ret == BOOTM_ERR_RESET)
                do_reset(cmdtp, flag, argc, argv);
-       else
-               puts("subcommand not supported\n");
 
        return ret;
 }