From 41a7624d61cbb8810506d81532200bf81f5d90d6 Mon Sep 17 00:00:00 2001 From: Matt Wilson Date: Mon, 27 Aug 2001 15:53:08 +0000 Subject: fix multiple scsi adapters --- loader/modules.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) (limited to 'loader/modules.c') diff --git a/loader/modules.c b/loader/modules.c index 55a0794d9..25d3b77dc 100644 --- a/loader/modules.c +++ b/loader/modules.c @@ -53,6 +53,23 @@ static int ethCount(void) { return count; } +static int scsiCount(void) { + FILE *f; + char buf[16384]; + int count = 0; + + f = fopen("/tmp/modules.conf", "r"); + if (!f) + return 0; + while (fgets(buf, sizeof(buf) - 1, f)) { + if (!strncmp(buf, "scsi_hostadaptor", 16)) + count++; + } + fclose(f); + return count; +} + + int mlReadLoadedList(moduleList * mlp) { int fd; char * start; @@ -368,13 +385,15 @@ int mlWriteConfModules(moduleList list, int fd) { int i; struct loadedModuleInfo * lm; char buf[200], buf2[200]; - int scsiNum = 0; + int scsiNum; int ethNum; int trNum = 0; char ** arg; if (!list) return 0; + scsiNum = scsiCount(); + for (i = 0, lm = list->mods; i < list->numModules; i++, lm++) { if (!lm->weLoaded) continue; if (lm->written) continue; -- cgit