]> git.ipfire.org Git - thirdparty/grub.git/commitdiff
2008-11-29 Robert Millan <rmh@aybabtu.com>
authorrobertmh <robertmh@localhost>
Sat, 29 Nov 2008 21:05:59 +0000 (21:05 +0000)
committerrobertmh <robertmh@localhost>
Sat, 29 Nov 2008 21:05:59 +0000 (21:05 +0000)
        * disk/ata.c (grub_ata_pciinit): Handle errors rised by
        grub_ata_device_initialize() calls.

ChangeLog
disk/ata.c

index f3b2770201e4b9ed976cc5061b86703cb1dfacef..6f4934cf6920077abea85b300d06f525d6193ace 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2008-11-29  Robert Millan  <rmh@aybabtu.com>
+
+       * disk/ata.c (grub_ata_pciinit): Handle errors rised by
+       grub_ata_device_initialize() calls.
+
 2008-11-28  Krzysztof Smiechowicz <deadwood@wp.pl>
 
        * fs/affs.c (grub_affs_iterate_dir): Return failure when directory
index 214a2cac7c3dacc511aca03bae0b10c9a1a96425..6e0b8b805b3e1d9bbba52d3a7a79767df5f0f6bf 100644 (file)
@@ -541,7 +541,25 @@ grub_ata_pciinit (int bus, int device, int func,
       if (rega && regb)
        {
          grub_ata_device_initialize (controller * 2 + i, 0, rega, regb);
+
+         /* Most errors rised by grub_ata_device_initialize() are harmless.
+            They just indicate this particular drive is not responding, most
+            likely because it doesn't exist.  We might want to ignore specific
+            error types here, instead of printing them.  */
+         if (grub_errno)
+           {
+             grub_print_error ();
+             grub_errno = GRUB_ERR_NONE;
+           }
+
          grub_ata_device_initialize (controller * 2 + i, 1, rega, regb);
+
+         /* Likewise.  */
+         if (grub_errno)
+           {
+             grub_print_error ();
+             grub_errno = GRUB_ERR_NONE;
+           }
        }
     }