diff options
author | Bill Nottingham <notting@redhat.com> | 2000-01-05 04:03:21 +0000 |
---|---|---|
committer | Bill Nottingham <notting@redhat.com> | 2000-01-05 04:03:21 +0000 |
commit | 52735284b6d3581556d16879dfb3e851faf0fa6e (patch) | |
tree | 74ad8082de09ac665e21783ffbb25c6fcb7a3ec5 /loader | |
parent | ed570da49ebfa8f1c948b4b11855c01c2de4a47f (diff) | |
download | anaconda-52735284b6d3581556d16879dfb3e851faf0fa6e.tar.gz anaconda-52735284b6d3581556d16879dfb3e851faf0fa6e.tar.xz anaconda-52735284b6d3581556d16879dfb3e851faf0fa6e.zip |
fixes for driver disks with dependencies:
- load dependent modules first from driver disk path, then default path
- fix loading of modules.dep from driver disk
Diffstat (limited to 'loader')
-rw-r--r-- | loader/devices.c | 12 | ||||
-rw-r--r-- | loader/devices.h | 4 | ||||
-rw-r--r-- | loader/loader.c | 4 | ||||
-rw-r--r-- | loader/modules.c | 4 |
4 files changed, 12 insertions, 12 deletions
diff --git a/loader/devices.c b/loader/devices.c index d7f155e5f..59075eeee 100644 --- a/loader/devices.c +++ b/loader/devices.c @@ -119,7 +119,7 @@ static int getModuleArgs(struct moduleInfo * mod, char *** argPtr) { } int devCopyDriverDisk(moduleInfoSet modInfo, moduleList modLoaded, - moduleDeps modDeps, int flags, char * mntPoint) { + moduleDeps *modDepsPtr, int flags, char * mntPoint) { char * files[] = { "modules.cgz", "modinfo", "modules.dep", NULL }; char * dirName; char ** file; @@ -151,7 +151,7 @@ int devCopyDriverDisk(moduleInfoSet modInfo, moduleList modLoaded, sprintf(from, "%s/modinfo", dirName); isysReadModuleInfo(from, modInfo, dirName); sprintf(from, "%s/modules.dep", dirName); - mlLoadDeps(&modDeps, from); + mlLoadDeps(modDepsPtr, from); diskNum++; @@ -159,7 +159,7 @@ int devCopyDriverDisk(moduleInfoSet modInfo, moduleList modLoaded, } int devLoadDriverDisk(moduleInfoSet modInfo, moduleList modLoaded, - moduleDeps modDeps, int flags, int cancelNotBack) { + moduleDeps *modDepsPtr, int flags, int cancelNotBack) { int rc; int done = 0; @@ -170,7 +170,7 @@ int devLoadDriverDisk(moduleInfoSet modInfo, moduleList modLoaded, if (rc == 2) return LOADER_BACK; - mlLoadModule("vfat", NULL, modLoaded, modDeps, NULL, flags); + mlLoadModule("vfat", NULL, modLoaded, (*modDepsPtr), NULL, flags); devMakeInode("fd0", "/tmp/fd0"); @@ -178,7 +178,7 @@ int devLoadDriverDisk(moduleInfoSet modInfo, moduleList modLoaded, newtWinMessage(_("Error"), _("OK"), _("Failed to mount floppy disk.")); - if (devCopyDriverDisk(modInfo, modLoaded, modDeps, + if (devCopyDriverDisk(modInfo, modLoaded, modDepsPtr, flags, "/tmp/drivers")) newtWinMessage(_("Error"), _("OK"), _("The floppy disk you inserted is not a valid driver disk " @@ -252,7 +252,7 @@ static int pickModule(moduleInfoSet modInfo, enum driverMajor type, if (es.reason == NEWT_EXIT_COMPONENT && es.u.co == back) { return LOADER_BACK; } else if (es.reason == NEWT_EXIT_HOTKEY && es.u.key == NEWT_KEY_F2) { - devLoadDriverDisk(modInfo, modLoaded, modDeps, flags, 0); + devLoadDriverDisk(modInfo, modLoaded, &modDeps, flags, 0); continue; } else { break; diff --git a/loader/devices.h b/loader/devices.h index b70ca9873..ee8af98e5 100644 --- a/loader/devices.h +++ b/loader/devices.h @@ -8,8 +8,8 @@ int devDeviceMenu(enum driverMajor type, moduleInfoSet modInfo, moduleList modLoaded, moduleDeps modDeps, int flags, char ** moduleName); int devLoadDriverDisk(moduleInfoSet modInfo, moduleList modLoaded, - moduleDeps modDeps, int flags, int cancelNotBack); + moduleDeps *modDepsPtr, int flags, int cancelNotBack); int devCopyDriverDisk(moduleInfoSet modInfo, moduleList modLoaded, - moduleDeps modDeps, int flags, char * mntPoint); + moduleDeps *modDepsPtr, int flags, char * mntPoint); #endif diff --git a/loader/loader.c b/loader/loader.c index 5913a9489..9b7a3720a 100644 --- a/loader/loader.c +++ b/loader/loader.c @@ -1182,7 +1182,7 @@ static int kickstartDevices(struct knownDevices * kd, moduleInfoSet modInfo, break; } - if (devCopyDriverDisk(modInfo, modLoaded, modDeps, flags, + if (devCopyDriverDisk(modInfo, modLoaded, &modDeps, flags, "/tmp/drivers")) { logMessage("driver information missing!"); } @@ -1904,7 +1904,7 @@ int main(int argc, char ** argv) { access("/proc/openprom", X_OK)) || FL_MODDISK(flags)) && !ksFile) { startNewt(flags); - devLoadDriverDisk(modInfo, modLoaded, modDeps, flags, 1); + devLoadDriverDisk(modInfo, modLoaded, &modDeps, flags, 1); } busProbe(modInfo, modLoaded, modDeps, probeOnly, &kd, flags); diff --git a/loader/modules.c b/loader/modules.c index fb7a07c7c..2706dcfc7 100644 --- a/loader/modules.c +++ b/loader/modules.c @@ -182,8 +182,8 @@ int mlLoadModule(char * modName, char * path, moduleList modLoaded, if (dep && dep->deps) { nextDep = dep->deps; while (*nextDep) { - mlLoadModule(*nextDep, NULL, modLoaded, modDeps, NULL, flags); - + if (mlLoadModule(*nextDep, path, modLoaded, modDeps, NULL, flags) && path) + mlLoadModule(*nextDep, NULL, modLoaded, modDeps, NULL, flags); nextDep++; } } |