[Top][All Lists]
[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;
}
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [PATCH]: Fix hangs and stalls on sparc64,
David Miller <=