cbfs_and_run_core() did not check the return code of cbfs_load_stage()

and jumped to (void*)-1 on error.
Die properly instead.
I didn't use die() because that caused a linker error.

Signed-off-by: Carl-Daniel Hailfinger <c-d.hailfinger.devel.2006@gmx.net>
Acked-by: Myles Watson <mylesgw@gmail.com>


git-svn-id: svn://svn.coreboot.org/coreboot/trunk@4776 2b7e53f0-3cfb-0310-b3e9-8179ed1497e1
This commit is contained in:
Carl-Daniel Hailfinger 2009-10-14 23:51:05 +00:00
parent 75472d27e4
commit 74cb9eb7e7
1 changed files with 5 additions and 0 deletions

View File

@ -11,6 +11,11 @@ void cbfs_and_run_core(char *filename, unsigned ebp)
u8 *dst; u8 *dst;
print_debug("Jumping to image.\r\n"); print_debug("Jumping to image.\r\n");
dst = cbfs_load_stage(filename); dst = cbfs_load_stage(filename);
if (dst == (void *) -1) {
/* We should use die() here. */
print_emerg("Loading stage failed!\n");
for (;;);
}
print_debug("Jumping to image.\r\n"); print_debug("Jumping to image.\r\n");
__asm__ volatile ( __asm__ volatile (