summaryrefslogtreecommitdiffstats
path: root/loader2
diff options
context:
space:
mode:
authorJeremy Katz <katzj@redhat.com>2003-02-18 21:39:41 +0000
committerJeremy Katz <katzj@redhat.com>2003-02-18 21:39:41 +0000
commitc5269e873bdeb6f49cff67afc0d3922ebbabe1bc (patch)
tree57faa6375ff20be744d96d8329fe4ccf66fb4216 /loader2
parent517e093728d4d0135540e73fa3fe1ea89cf0cd95 (diff)
downloadanaconda-c5269e873bdeb6f49cff67afc0d3922ebbabe1bc.tar.gz
anaconda-c5269e873bdeb6f49cff67afc0d3922ebbabe1bc.tar.xz
anaconda-c5269e873bdeb6f49cff67afc0d3922ebbabe1bc.zip
add a way to skip the probe if we're going into loadDriverFromMedia from
chooseManualDevice. fixes #83422
Diffstat (limited to 'loader2')
-rw-r--r--loader2/driverdisk.c14
-rw-r--r--loader2/driverdisk.h3
-rw-r--r--loader2/driverselect.c4
-rw-r--r--loader2/hdinstall.c4
-rw-r--r--loader2/loader.c4
5 files changed, 19 insertions, 10 deletions
diff --git a/loader2/driverdisk.c b/loader2/driverdisk.c
index 3a0ca7b02..cc64a85a8 100644
--- a/loader2/driverdisk.c
+++ b/loader2/driverdisk.c
@@ -178,7 +178,8 @@ int getRemovableDevices(char *** devNames) {
*/
int loadDriverFromMedia(int class, moduleList modLoaded,
moduleDeps * modDepsPtr, moduleInfoSet modInfo,
- struct knownDevices * kd, int flags, int usecancel) {
+ struct knownDevices * kd, int flags,
+ int usecancel, int noprobe) {
char * device = NULL;
char ** devNames = NULL;
@@ -271,6 +272,13 @@ int loadDriverFromMedia(int class, moduleList modLoaded,
stage = DEV_PROBE;
case DEV_PROBE:
+ /* if they didn't specify that we should probe, then we should
+ * just fall out */
+ if (noprobe) {
+ stage = DEV_DONE;
+ break;
+ }
+
busProbe(modInfo, modLoaded, *modDepsPtr, 0, kd, flags);
if (class != CLASS_UNSPEC) {
@@ -343,7 +351,7 @@ int loadDriverDisks(int class, moduleList modLoaded,
return LOADER_OK;
rc = loadDriverFromMedia(CLASS_UNSPEC, modLoaded, modDepsPtr, modInfo,
- kd, flags, 1);
+ kd, flags, 1, 0);
if (rc == LOADER_BACK)
return LOADER_OK;
@@ -353,7 +361,7 @@ int loadDriverDisks(int class, moduleList modLoaded,
if (rc != 1)
break;
loadDriverFromMedia(CLASS_UNSPEC, modLoaded, modDepsPtr, modInfo,
- kd, flags, 0);
+ kd, flags, 0, 0);
} while (1);
return LOADER_OK;
diff --git a/loader2/driverdisk.h b/loader2/driverdisk.h
index 65f14aeef..1e81d9d9e 100644
--- a/loader2/driverdisk.h
+++ b/loader2/driverdisk.h
@@ -8,7 +8,8 @@
int loadDriverFromMedia(int class, moduleList modLoaded,
moduleDeps * modDepsPtr, moduleInfoSet modInfo,
- struct knownDevices * kd, int flags, int usecancel);
+ struct knownDevices * kd, int flags,
+ int usecancel, int noprobe);
int loadDriverDisks(int class, moduleList modLoaded,
moduleDeps * modDepsPtr, moduleInfoSet modInfo,
diff --git a/loader2/driverselect.c b/loader2/driverselect.c
index 3586fbae4..e6c704fc4 100644
--- a/loader2/driverselect.c
+++ b/loader2/driverselect.c
@@ -191,7 +191,7 @@ int chooseManualDriver(int class, moduleList modLoaded,
return LOADER_BACK;
loadDriverFromMedia(class, modLoaded, modDepsPtr, modInfo, kd,
- flags, 1);
+ flags, 1, 1);
continue;
} else {
break;
@@ -266,7 +266,7 @@ int chooseManualDriver(int class, moduleList modLoaded,
return LOADER_BACK;
if (done == -2) {
loadDriverFromMedia(class, modLoaded, modDepsPtr, modInfo, kd,
- flags, 1);
+ flags, 1, 1);
return chooseManualDriver(class, modLoaded, modDepsPtr, modInfo,
kd, flags);
}
diff --git a/loader2/hdinstall.c b/loader2/hdinstall.c
index ffde08708..f256c42d3 100644
--- a/loader2/hdinstall.c
+++ b/loader2/hdinstall.c
@@ -373,7 +373,7 @@ char * mountHardDrive(struct installMethod * method,
return NULL;
rc = loadDriverFromMedia(CLASS_HD, modLoaded, modDepsPtr,
- modInfo, kd, flags, 0);
+ modInfo, kd, flags, 0, 0);
if (rc == LOADER_BACK)
return NULL;
@@ -459,7 +459,7 @@ char * mountHardDrive(struct installMethod * method,
return NULL;
} else if (es.reason == NEWT_EXIT_HOTKEY && es.u.key == NEWT_KEY_F2) {
rc = loadDriverFromMedia(CLASS_HD, modLoaded, modDepsPtr,
- modInfo, kd, flags, 0);
+ modInfo, kd, flags, 0, 0);
if (rc == LOADER_BACK)
return NULL;
diff --git a/loader2/loader.c b/loader2/loader.c
index c9c0069c0..3f4a55eb1 100644
--- a/loader2/loader.c
+++ b/loader2/loader.c
@@ -726,7 +726,7 @@ static char *doLoaderMain(char * location,
dir = -1;
break;
}
-
+
chooseManualDriver(installMethods[validMethods[methodNum]].deviceType,
modLoaded, modDepsPtr, modInfo, kd, flags);
/* it doesn't really matter what we return here; we just want
@@ -739,7 +739,7 @@ static char *doLoaderMain(char * location,
rc = loadDriverFromMedia(installMethods[validMethods[methodNum]].deviceType,
modLoaded, modDepsPtr, modInfo, kd,
- flags, 0);
+ flags, 0, 0);
if (rc == LOADER_BACK) {
step = STEP_DRIVER;
dir = -1;