From 23cd074c57ee6f35776fd5122a050bcef6c9eef5 Mon Sep 17 00:00:00 2001 From: Vladimir Serbinenko Date: Sat, 28 Dec 2013 17:25:14 +0100 Subject: [PATCH 008/140] Don't abort() on unavailable coreboot tables if not running on coreboot. --- ChangeLog | 4 ++++ grub-core/kern/i386/coreboot/cbtable.c | 2 +- grub-core/kern/i386/coreboot/init.c | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/ChangeLog b/ChangeLog index 0401f61..ed6d77c 100644 --- a/ChangeLog +++ b/ChangeLog @@ -1,3 +1,7 @@ +2013-12-28 Vladimir Serbinenko + + Don't abort() on unavailable coreboot tables if not running on coreboot. + 2013-12-28 Andrey Borzenkov * grub-core/kern/emu/misc.c: Remove unused error.h; fixes compilation diff --git a/grub-core/kern/i386/coreboot/cbtable.c b/grub-core/kern/i386/coreboot/cbtable.c index e3bb7b2..1669bc0 100644 --- a/grub-core/kern/i386/coreboot/cbtable.c +++ b/grub-core/kern/i386/coreboot/cbtable.c @@ -55,7 +55,7 @@ grub_linuxbios_table_iterate (int (*hook) (grub_linuxbios_table_item_t, if (check_signature (table_header)) goto signature_found; - grub_fatal ("Could not find coreboot table\n"); + return 0; signature_found: diff --git a/grub-core/kern/i386/coreboot/init.c b/grub-core/kern/i386/coreboot/init.c index 6b150b4..3314f02 100644 --- a/grub-core/kern/i386/coreboot/init.c +++ b/grub-core/kern/i386/coreboot/init.c @@ -51,6 +51,7 @@ grub_exit (void) grub_addr_t grub_modbase = GRUB_KERNEL_I386_COREBOOT_MODULES_ADDR; static grub_uint64_t modend; +static int have_memory = 0; /* Helper for grub_machine_init. */ static int @@ -82,6 +83,8 @@ heap_init (grub_uint64_t addr, grub_uint64_t size, grub_memory_type_t type, grub_mm_init_region ((void *) (grub_addr_t) begin, (grub_size_t) (end - begin)); + have_memory = 1; + return 0; } @@ -97,6 +100,8 @@ grub_machine_init (void) grub_vga_text_init (); grub_machine_mmap_iterate (heap_init, NULL); + if (!have_memory) + grub_fatal ("No memory found"); grub_video_coreboot_fb_late_init (); -- 1.9.3