diff options
Diffstat (limited to 'loader')
-rw-r--r-- | loader/modules.c | 11 | ||||
-rw-r--r-- | loader/pcmcia.c | 12 |
2 files changed, 17 insertions, 6 deletions
diff --git a/loader/modules.c b/loader/modules.c index 58671ca47..5ed349984 100644 --- a/loader/modules.c +++ b/loader/modules.c @@ -425,11 +425,16 @@ static char * filterDriverModules(struct driverDiskInfo * ddi, myCpioFilterArchive(from, to, pattern); - newtPopWindow(); - gunzip_close(from); gunzip_close(to); - umount("/tmp/drivers"); + while(1) { + int rc; + rc = umount("/tmp/drivers"); + if (rc != -1) + break; + } + + newtPopWindow(); return toPath; } diff --git a/loader/pcmcia.c b/loader/pcmcia.c index 0baa3c9b5..f26caac33 100644 --- a/loader/pcmcia.c +++ b/loader/pcmcia.c @@ -162,14 +162,20 @@ int startPcmcia(char * floppyDevice, moduleList modLoaded, moduleDeps modDeps, logMessage("cardmgr running as pid %d", child); waitpid(child, &status, 0); - logMessage("cardmgr returned 0x%x", status); busProbe(modInfo, modLoaded, modDeps, 0, kd, flags); - newtPopWindow(); - umount("/modules"); + while(1) { + sleep(2); + rc = umount("/modules"); + if (rc != -1) { + break; + } + logMessage("return code of /modules unmount is %d", rc); + } + newtPopWindow(); strcpy(pcicPtr, pcic); return 0; |