commit-grub
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[2207] 2009-05-13 Robert Millan <address@hidden>


From: Robert Millan
Subject: [2207] 2009-05-13 Robert Millan <address@hidden>
Date: Wed, 13 May 2009 20:59:46 +0000

Revision: 2207
          http://svn.sv.gnu.org/viewvc/?view=rev&root=grub&revision=2207
Author:   robertmh
Date:     2009-05-13 20:59:45 +0000 (Wed, 13 May 2009)
Log Message:
-----------
2009-05-13  Robert Millan  <address@hidden>

        * util/i386/pc/grub-setup.c (setup): Restructure code flow to make
        it easier to understand / work with.

Modified Paths:
--------------
    trunk/grub2/ChangeLog
    trunk/grub2/util/i386/pc/grub-setup.c

Modified: trunk/grub2/ChangeLog
===================================================================
--- trunk/grub2/ChangeLog       2009-05-13 20:52:35 UTC (rev 2206)
+++ trunk/grub2/ChangeLog       2009-05-13 20:59:45 UTC (rev 2207)
@@ -1,3 +1,8 @@
+2009-05-13  Robert Millan  <address@hidden>
+
+       * util/i386/pc/grub-setup.c (setup): Restructure code flow to make
+       it easier to understand / work with.
+
 2009-05-13  Pavel Roskin  <address@hidden>
 
        * loader/i386/pc/multiboot2.c: Add necessary includes for

Modified: trunk/grub2/util/i386/pc/grub-setup.c
===================================================================
--- trunk/grub2/util/i386/pc/grub-setup.c       2009-05-13 20:52:35 UTC (rev 
2206)
+++ trunk/grub2/util/i386/pc/grub-setup.c       2009-05-13 20:59:45 UTC (rev 
2207)
@@ -310,17 +310,19 @@
                  dos_part, bsd_part);
 
   if (! dest_dev->disk->has_partitions)
+    {
     grub_util_warn ("Attempting to install GRUB to a partitionless disk.  This 
is a BAD idea.");
+      goto unable_to_embed;
+    }
 
   if (dest_dev->disk->partition)
+    {
     grub_util_warn ("Attempting to install GRUB to a partition instead of the 
MBR.  This is a BAD idea.");
+      goto unable_to_embed;
+    }
   
-  /* If the destination device can have partitions and it is the MBR,
-     try to embed the core image into after the MBR.  */
-  if (dest_dev->disk->has_partitions && ! dest_dev->disk->partition)
-    {
       /* Unlike root_dev, with dest_dev we're interested in the partition map 
even
-        if dest_dev itself is a whole disk.  */
+         if dest_dev itself is a whole disk.  */
       auto int NESTED_FUNC_ATTR identify_partmap (grub_disk_t disk,
                                                  const grub_partition_t p);
       int NESTED_FUNC_ATTR identify_partmap (grub_disk_t disk __attribute__ 
((unused)),
@@ -330,16 +332,22 @@
          return 1;
        }
       grub_partition_iterate (dest_dev->disk, identify_partmap);
-
+      
       grub_partition_iterate (dest_dev->disk, (strcmp (dest_partmap, 
"pc_partition_map") ?
                                               find_usable_region_gpt : 
find_usable_region_msdos));
-      
-      if (embed_region.end != embed_region.start)
-       embedding_area_exists = 1;
-      
-      /* If there is enough space...  */
-      if ((unsigned long) core_sectors <= embed_region.end - 
embed_region.start)
-       {
+  if (embed_region.end == embed_region.start)
+    {
+      grub_util_warn ("Embedding area is not present at all!");
+      goto unable_to_embed;
+    }
+
+  if ((unsigned long) core_sectors > embed_region.end - embed_region.start)
+    {
+      grub_util_warn ("Embedding area is too small for core.img.");
+      goto unable_to_embed;
+    }
+
+
          grub_util_info ("will embed the core image at sector 0x%llx", 
embed_region.start);
 
          *install_dos_part = grub_cpu_to_le32 (dos_part);
@@ -374,16 +382,9 @@
            grub_util_error ("%s", grub_errmsg);
 
          goto finish;
-       }
-    }
   
-  /* If we reached this point, it means we were unable to embed.  */
+unable_to_embed:
   
-  if (embedding_area_exists)
-    grub_util_warn ("Embedding area is too small for core.img.");
-  else
-    grub_util_warn ("Embedding area is not present at all!");
-  
   if (must_embed)
     grub_util_error ("Embedding is not possible, but this is required when "
                     "the root device is on a RAID array or LVM volume.");





reply via email to

[Prev in Thread] Current Thread [Next in Thread]