summaryrefslogtreecommitdiffstats
path: root/loader/loader.c
diff options
context:
space:
mode:
authorErik Troan <ewt@redhat.com>2001-10-17 01:05:02 +0000
committerErik Troan <ewt@redhat.com>2001-10-17 01:05:02 +0000
commit9433df5a14f77970c2268397358642136902ad14 (patch)
tree4d86f9365e0be331d2023e7172d3e1771c2d9be5 /loader/loader.c
parent2da50675d75deeace3fb62a2c0bc514a5c34c2be (diff)
downloadanaconda-9433df5a14f77970c2268397358642136902ad14.tar.gz
anaconda-9433df5a14f77970c2268397358642136902ad14.tar.xz
anaconda-9433df5a14f77970c2268397358642136902ad14.zip
load all detected modules at once
Diffstat (limited to 'loader/loader.c')
-rw-r--r--loader/loader.c29
1 files changed, 10 insertions, 19 deletions
diff --git a/loader/loader.c b/loader/loader.c
index 10214b648..1603eec75 100644
--- a/loader/loader.c
+++ b/loader/loader.c
@@ -179,7 +179,7 @@ static int setupRamdisk(void) {
return 0;
}
-static void startNewt(int flags) {
+void startNewt(int flags) {
if (!newtRunning) {
newtInit();
newtCls();
@@ -412,6 +412,7 @@ int manualDeviceCheck(moduleInfoSet modInfo, moduleList modLoaded,
int busProbe(moduleInfoSet modInfo, moduleList modLoaded, moduleDeps modDeps,
int justProbe, struct knownDevices * kd, int flags) {
int i;
+ char modules[1024];
struct moduleInfo ** modList;
if (FL_NOPROBE(flags)) return 0;
@@ -422,29 +423,19 @@ int busProbe(moduleInfoSet modInfo, moduleList modLoaded, moduleDeps modDeps,
if (detectHardware(modInfo, &modList, flags)) {
logMessage("failed to scan pci bus!");
return 0;
+ } else if (modList && justProbe) {
+ for (i = 0; modList[i]; i++)
+ if (modList[i]->major == DRIVER_NET)
+ printf("%s\n", modList[i]->moduleName);
} else if (modList) {
- logMessage("found devices justProbe is %d", justProbe);
+ *modules = '\0';
for (i = 0; modList[i]; i++) {
- if (justProbe) {
- printf("%s\n", modList[i]->moduleName);
- } else {
- if (modList[i]->major == DRIVER_NET) {
- mlLoadModule(modList[i]->moduleName,
- modLoaded, modDeps, NULL, modInfo, flags);
- }
- }
+ if (i) strcat(modules, ":");
+ strcat(modules, modList[i]->moduleName);
}
- for (i = 0; !justProbe && modList[i]; i++) {
- if (modList[i]->major == DRIVER_SCSI) {
- startNewt(flags);
-
- mlLoadModule(modList[i]->moduleName,
- modLoaded, modDeps,
- NULL, modInfo, flags);
- }
- }
+ mlLoadModuleSet(modules, modLoaded, modDeps, NULL, modInfo, flags);
kdFindScsiList(kd, 0);
kdFindNetList(kd, 0);