[U-Boot] [PATCH] fix lib_arm/bootm.c

Daniel Mack daniel at caiaq.de
Fri Nov 28 20:36:30 CET 2008


Hi,

while digging thru the sources to find out why U-Boot won't start my
Linux kernel, I stumbled over lib_arm/bootm.c and its check for the falg
variable. I wonder how this ever worked as the condition is really heavy
to match unless BOOTM_STATE_OS_GO is 0 which it isn't.

So I guess the patch below is mandatory or you could write an unlikely()
around that check ;)

Best regards,
Daniel


diff --git a/lib_arm/bootm.c b/lib_arm/bootm.c
index 8e264ce..58a101f 100644
--- a/lib_arm/bootm.c
+++ b/lib_arm/bootm.c
@@ -67,7 +67,7 @@ int do_bootm_linux(int flag, int argc, char *argv[], bootm_headers_t *images)
        char *commandline = getenv ("bootargs");
 #endif
 
-       if ((flag != 0) || (flag != BOOTM_STATE_OS_GO))
+       if ((flag != 0) && (flag != BOOTM_STATE_OS_GO))
                return 1;
 
        theKernel = (void (*)(int, int, uint))images->ep;



More information about the U-Boot mailing list