Browse Source

x86: Panic if there is no relocation data

This normally indicates a problem which will prevent relocation from
functioning, resulting in a hang. Panic in this case to make it easier
to debug.

Signed-off-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
Simon Glass 10 years ago
parent
commit
512e581c86
1 changed files with 3 additions and 0 deletions
  1. 3 0
      arch/x86/lib/relocate.c

+ 3 - 0
arch/x86/lib/relocate.c

@@ -76,6 +76,9 @@ int do_elf_reloc_fixups(void)
 	/* The size of the region of u-boot that runs out of RAM. */
 	/* The size of the region of u-boot that runs out of RAM. */
 	uintptr_t size = (uintptr_t)&__bss_end - (uintptr_t)&__text_start;
 	uintptr_t size = (uintptr_t)&__bss_end - (uintptr_t)&__text_start;
 
 
+	if (re_src == re_end)
+		panic("No relocation data");
+
 	do {
 	do {
 		/* Get the location from the relocation entry */
 		/* Get the location from the relocation entry */
 		offset_ptr_rom = (Elf32_Addr *)re_src->r_offset;
 		offset_ptr_rom = (Elf32_Addr *)re_src->r_offset;