cmd_bootm.c: Re-order bootm_load_os return check for ELDK4.2
authorTom Rini <trini@ti.com>
Thu, 11 Jul 2013 13:35:23 +0000 (09:35 -0400)
committerTom Rini <trini@ti.com>
Fri, 12 Jul 2013 14:32:39 +0000 (10:32 -0400)
With ELDK4.2 we were getting a warning that load_end may be used
uninitialized in calling lmb_reserve.  This could not be the case,
however.  If we re-order the checks (and make them slightly clearer as
well) the warning goes away.  bootm_load_os may only return 0 on
success, BOOTM_ERR_OVERLAP in a non-fatal overlap (already covered in
comments) or a fatal BOOTM_ERR that is covered in the error handler.

Signed-off-by: Tom Rini <trini@ti.com>
common/cmd_bootm.c

index a783cea5d39a4dc1fb318db8b8d253e3c60cad1c..306c8f395ad897fb1a06b387fe95b6d0dd204873 100644 (file)
@@ -650,12 +650,11 @@ static int do_bootm_states(cmd_tbl_t *cmdtp, int flag, int argc,
 
                iflag = bootm_disable_interrupts();
                ret = bootm_load_os(images, &load_end, 0);
-               if (ret && ret != BOOTM_ERR_OVERLAP)
-                       goto err;
-
                if (ret == 0)
                        lmb_reserve(&images->lmb, images->os.load,
                                    (load_end - images->os.load));
+               else if (ret && ret != BOOTM_ERR_OVERLAP)
+                       goto err;
                else if (ret == BOOTM_ERR_OVERLAP)
                        ret = 0;
        }