=== modified file 'grub-core/kern/i386/coreboot/mmap.c' --- grub-core/kern/i386/coreboot/mmap.c 2010-09-04 15:10:10 +0000 +++ grub-core/kern/i386/coreboot/mmap.c 2011-07-02 21:03:42 +0000 @@ -27,6 +27,7 @@ { grub_linuxbios_table_header_t table_header; grub_linuxbios_table_item_t table_item; + int linked = 0; auto int check_signature (grub_linuxbios_table_header_t); int check_signature (grub_linuxbios_table_header_t tbl_header) @@ -59,12 +60,13 @@ for (; table_item->size; table_item = (grub_linuxbios_table_item_t) ((long) table_item + (long) table_item->size)) { - if (table_item->tag == GRUB_LINUXBIOS_MEMBER_LINK + if (!linked && table_item->tag == GRUB_LINUXBIOS_MEMBER_LINK && check_signature ((grub_linuxbios_table_header_t) (grub_addr_t) *(grub_uint64_t *) (table_item + 1))) { table_header = (grub_linuxbios_table_header_t) (grub_addr_t) *(grub_uint64_t *) (table_item + 1); + linked = 1; goto signature_found; } if (hook (table_item))