]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
* grub-core/disk/dmraid_nvidia.c (grub_dmraid_nv_detect): Skip
authorVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 14 Jan 2012 10:42:52 +0000 (11:42 +0100)
committerVladimir 'phcoder' Serbinenko <phcoder@gmail.com>
Sat, 14 Jan 2012 10:42:52 +0000 (11:42 +0100)
disks with unknown size.
* grub-core/disk/raid.c (scan_devices): Allow disks with unknown sizes.

grub-core/loader/ia64/efi/linux.c
grub-core/loader/mips/linux.c
grub-core/loader/powerpc/ieee1275/linux.c
grub-core/loader/sparc64/ieee1275/linux.c

index 28958ae571b205780fe6cc501160d7409aee7257..27dadc69638b30181f5f82473e7dee774af13bc2 100644 (file)
@@ -618,7 +618,6 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
     }
   grub_printf ("\n");
 
-  initrd_size = grub_file_size (file);
   initrd_pages = (page_align (initrd_size) >> 12);
   initrd_mem = grub_efi_allocate_pages (0, initrd_pages);
   if (! initrd_mem)
index f75f58c4f9136a2765fb4531983809c853e316e5..7fda817aff7ae5e1c18e0e0e652669278016e5a0 100644 (file)
@@ -478,10 +478,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
                                            GRUB_RELOCATOR_PREFERENCE_NONE);
 
     if (err)
-      {
-       grub_file_close (file);
-       return err;
-      }
+      goto fail;
     initrd_src = get_virtual_current_address (ch);
     initrd_dest = get_physical_target_address (ch) | 0x80000000;
   }
@@ -507,10 +504,7 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
                          " rd_size=0x%" PRIxGRUB_ADDR, params,
                          initrd_dest, size);
     if (!tmp)
-      {
-       grub_file_close (file);
-       return grub_errno;
-      }
+      goto fail;
     grub_free (params);
     params = tmp;
   }
@@ -532,9 +526,12 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
 
   initrd_loaded = 1;
 
-  grub_file_close (file);
+ fail:
+  for (i = 0; i < nfiles; i++)
+    grub_file_close (files[i]);
+  grub_free (files);
 
-  return GRUB_ERR_NONE;
+  return grub_errno;
 }
 
 static grub_command_t cmd_linux, cmd_initrd;
index 3308c9c92acab7e0d76d21f6ffb200488be71793..b0af5f75df0917ee84651658b7aa74301d3f67e0 100644 (file)
@@ -380,8 +380,9 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
   initrd_size = size;
 
  fail:
-  if (file)
-    grub_file_close (file);
+  for (i = 0; i < nfiles; i++)
+    grub_file_close (files[i]);
+  grub_free (files);
 
   return grub_errno;
 }
index 697677ef7da6201edb3682ed527939c5e9a5bc73..7b68f38b0bed673f6f6dfde4c660475c8344118b 100644 (file)
@@ -445,8 +445,9 @@ grub_cmd_initrd (grub_command_t cmd __attribute__ ((unused)),
   initrd_size = size;
 
  fail:
-  if (file)
-    grub_file_close (file);
+  for (i = 0; i < nfiles; i++)
+    grub_file_close (files[i]);
+  grub_free (files);
 
   return grub_errno;
 }