summaryrefslogtreecommitdiffstats
path: root/loader2/driverdisk.c
diff options
context:
space:
mode:
authorJeremy Katz <katzj@redhat.com>2003-09-20 03:31:26 +0000
committerJeremy Katz <katzj@redhat.com>2003-09-20 03:31:26 +0000
commit31f1add4879da48efb7af21fc5c575692cc3709d (patch)
tree7a541b8f54f91ed8309da17752e205b40db2cf30 /loader2/driverdisk.c
parent8307d33391423f13c1deed409b80d8e381582a93 (diff)
downloadanaconda-31f1add4879da48efb7af21fc5c575692cc3709d.tar.gz
anaconda-31f1add4879da48efb7af21fc5c575692cc3709d.tar.xz
anaconda-31f1add4879da48efb7af21fc5c575692cc3709d.zip
merge from taroon
fairly large merge, but all fairly obvious stuff. will test in a tree tomorrow
Diffstat (limited to 'loader2/driverdisk.c')
-rw-r--r--loader2/driverdisk.c14
1 files changed, 11 insertions, 3 deletions
diff --git a/loader2/driverdisk.c b/loader2/driverdisk.c
index aa98653dd..da4f29003 100644
--- a/loader2/driverdisk.c
+++ b/loader2/driverdisk.c
@@ -157,9 +157,8 @@ int getRemovableDevices(char *** devNames) {
int numDevices = 0;
int i = 0, j = 0;
- floppies = probeDevices(CLASS_FLOPPY,
- BUS_IDE | BUS_SCSI | BUS_MISC, PROBE_ALL);
- cdroms = probeDevices(CLASS_CDROM, BUS_IDE | BUS_SCSI, PROBE_ALL);
+ floppies = probeDevices(CLASS_FLOPPY, BUS_UNSPEC, PROBE_ALL);
+ cdroms = probeDevices(CLASS_CDROM, BUS_UNSPEC, PROBE_ALL);
/* we should probably take detached into account here, but it just
* means we use a little bit more memory than we really need to */
@@ -195,6 +194,7 @@ int getRemovableDevices(char *** devNames) {
for (i = 0; devices[i] && (i < numDevices); i++)
(*devNames)[i] = strdup(devices[i]->device);
free(devices);
+ (*devNames)[i] = NULL;
if (i != numDevices)
logMessage("somehow numDevices != len(devices)");
@@ -441,11 +441,19 @@ void getDDFromSource(struct knownDevices * kd,
logMessage("unable to retrieve driver disk: %s", src);
return;
}
+ /* FIXME: this is a hack so that you can load a driver disk from, eg,
+ * scsi cdrom drives */
+ } else if (!strncmp(src, "cdrom", 5)) {
+ loadDriverDisks(CLASS_UNSPEC, loaderData->modLoaded,
+ loaderData->modDepsPtr, loaderData->modInfo,
+ kd, flags);
+ return;
} else {
newtWinMessage(_("Kickstart Error"), _("OK"),
_("Unknown driver disk kickstart source: %s"), src);
return;
}
+
if (!mountLoopback("/tmp/dd.img", "/tmp/drivers", "loop6")) {
loadFromLocation(kd, loaderData, "/tmp/drivers", flags);
umountLoopback("/tmp/drivers", "loop6");