Blob Blame History Raw
From: Stuart Hayes <stuart_hayes@dell.com>
Subject: Don't decrease efi memory map size
Date: 2012-07-02 09:14:37 +0000



--- a/grub-core/loader/i386/linux.c	2012-06-27 20:55:09 +0000
+++ b/grub-core/loader/i386/linux.c	2012-07-02 09:14:37 +0000
@@ -118,12 +118,13 @@
       int ret;
       grub_efi_memory_descriptor_t *mmap;
       grub_efi_uintn_t desc_size;
+      grub_efi_uintn_t cur_mmap_size = mmap_size;
 
-      mmap = grub_malloc (mmap_size);
+      mmap = grub_malloc (cur_mmap_size);
       if (! mmap)
 	return 0;
 
-      ret = grub_efi_get_memory_map (&mmap_size, mmap, 0, &desc_size, 0);
+      ret = grub_efi_get_memory_map (&cur_mmap_size, mmap, 0, &desc_size, 0);
       grub_free (mmap);
 
       if (ret < 0)
@@ -134,6 +135,8 @@
       else if (ret > 0)
 	break;
 
+      if (mmap_size < cur_mmap_size)
+	mmap_size = cur_mmap_size;
       mmap_size += (1 << 12);
     }