Hello,

In additional MinGW testing, i've found that there are instances where the 
embedding test used in grub-setup will fail to seek on certain devices (such as 
card readers where no cards are physically present).  This sets grub_errno 
during the embedding test as the different disks in the system are tested.  It 
gets set even when installing to a different disk (all the physical disks are 
seeked).  Consequently grub_errno remains set up to the point when the core 
image is to be written out and mistakingly will indicate grub-setup failed for 
a seek error that happened at the start.

So this patch resets grub_errno while completing the embedding test only on the 
non fatal failures.

Thanks,

-- 
*Mario Limonciello*
Linux Engineer
*Dell*| OS Engineering
=== modified file 'ChangeLog'
--- ChangeLog	2011-09-17 21:40:10 +0000
+++ ChangeLog	2011-09-26 20:21:14 +0000
@@ -1,3 +1,7 @@
+2011-09-26  Mario Limonciello <[email protected]>
+
+	* Reset grub_errno after embedding test on a non-fatal failure.
+
 2011-09-17  Grégoire Sutre  <[email protected]>
 
 	* Makefile.util.def (grub-mkrelpath): Add LIBUTIL for getrawpartition(3)

=== modified file 'grub-core/partmap/msdos.c'
--- grub-core/partmap/msdos.c	2011-07-07 21:52:58 +0000
+++ grub-core/partmap/msdos.c	2011-09-26 20:22:52 +0000
@@ -253,7 +253,7 @@
 	return grub_errno;
       for (i = 0; i < *nsectors; i++)
 	(*sectors)[i] = 1 + i;
-      return GRUB_ERR_NONE;
+      return grub_error(GRUB_ERR_NONE,"");
     }
 
   if (end <= 1)

Attachment: signature.asc
Description: OpenPGP digital signature

_______________________________________________
Grub-devel mailing list
[email protected]
https://lists.gnu.org/mailman/listinfo/grub-devel

Reply via email to