grub-devel
[Top][All Lists]
Advanced

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

[PATCH]: Fix hangs and stalls on sparc64


From: David Miller
Subject: [PATCH]: Fix hangs and stalls on sparc64
Date: Mon, 04 May 2009 16:07:33 -0700 (PDT)

1) If there isn't a CDROM in the drive, trying to do an
   ieee1275 open() on a cdroom device hangs nearly indefinitely.

2) If you try to open the bare device "ide/disk" for example (with
   no "@X,Y" ID selector) this hangs for 5 seconds then spits out
   ugly errors about not being able to read disk labels etc.

So bypass these cases for now, we're only really interested in
the explicitly listed aliases anyways.

As for cdrom grub2 booting, I have some plans for this and I will
look into them after I get some feedback about some details of
OpenBoot from one of my engineering contacts at Sun.

Committed.

2009-05-04  David S. Miller  <address@hidden>

        * disk/ieee1275/ofdisk.c (grub_ofdisk_iterate): Bypass cdrom
        devices, and do not traverse down under controller nodes.

Index: disk/ieee1275/ofdisk.c
===================================================================
--- disk/ieee1275/ofdisk.c      (revision 2185)
+++ disk/ieee1275/ofdisk.c      (working copy)
@@ -106,13 +106,9 @@
            }
        }
 
-      if (! grub_strcmp (alias->type, "block"))
+      if (! grub_strcmp (alias->type, "block") &&
+         grub_strcmp (alias->name, "cdrom"))
        ret = hook (alias->name);
-      else if ((! grub_strcmp (alias->type, "scsi"))
-              || (! grub_strcmp (alias->type, "ide"))
-              || (! grub_strcmp (alias->type, "ata")))
-       /* Search for block-type children of these bus controllers.  */
-       ret = grub_children_iterate (alias->name, dev_iterate);
       return ret;
     }
 




reply via email to

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