diff packages/hal/arm/arch/current/src/redboot_linux_exec.c @ 1688:30d12b1c7bb0

Fix test for valid entry point (loaded data)
author gthomas
date Wed, 07 Jul 2004 15:44:47 +0000
parents 431860e2ee69
children aaa68fc7d7f9
line wrap: on
line diff
--- a/packages/hal/arm/arch/current/src/redboot_linux_exec.c
+++ b/packages/hal/arm/arch/current/src/redboot_linux_exec.c
@@ -291,6 +291,11 @@ do_exec(int argc, char *argv[])
     struct tag *params = (struct tag *)CYGHWR_REDBOOT_ARM_LINUX_TAGS_ADDRESS;
     extern char __tramp_start__[], __tramp_end__[];
 
+    // Check to see if a valid image has been loaded
+    if (entry_address == (unsigned long)NO_MEMORY) {
+        diag_printf("Can't execute Linux - invalid entry address\n");
+        return;
+    }
     // Default physical entry point for Linux is kernel base.
     entry = (unsigned long)CYGHWR_REDBOOT_ARM_LINUX_EXEC_ADDRESS;
 
@@ -316,10 +321,6 @@ do_exec(int argc, char *argv[])
     {
         return;
     }
-    if (entry == (unsigned long)NO_MEMORY) {
-        diag_printf("Can't execute Linux - invalid entry address\n");
-        return;
-    }
 
     // Set up parameters to pass to kernel