summaryrefslogtreecommitdiffstats
path: root/loader2
diff options
context:
space:
mode:
authorBill Nottingham <notting@redhat.com>2008-01-24 14:11:10 -0500
committerBill Nottingham <notting@redhat.com>2008-01-24 14:11:10 -0500
commitc742e9866a765377a30927f61d260f0ee8bc084a (patch)
tree9e4f858c50563c6655a0c132c2bd0abfc977f361 /loader2
parent9364d1c03b90270047dee662aee393aa23ae0ebf (diff)
downloadanaconda-c742e9866a765377a30927f61d260f0ee8bc084a.tar.gz
anaconda-c742e9866a765377a30927f61d260f0ee8bc084a.tar.xz
anaconda-c742e9866a765377a30927f61d260f0ee8bc084a.zip
Map 'nousb', 'nofirewire', etc. to be proper module blacklists.
Also, remove some extraneous flags in the process.
Diffstat (limited to 'loader2')
-rw-r--r--loader2/loader.c25
-rw-r--r--loader2/loader.h24
-rw-r--r--loader2/modules.c7
-rw-r--r--loader2/modules.h1
4 files changed, 25 insertions, 32 deletions
diff --git a/loader2/loader.c b/loader2/loader.c
index deff18142..e08a7ab39 100644
--- a/loader2/loader.c
+++ b/loader2/loader.c
@@ -737,26 +737,12 @@ static void parseCmdLineFlags(struct loaderData_s * loaderData,
flags |= LOADER_FLAGS_NOSHELL;
else if (!strcasecmp(argv[i], "mediacheck"))
flags |= LOADER_FLAGS_MEDIACHECK;
- else if (!strcasecmp(argv[i], "nousbstorage"))
- flags |= LOADER_FLAGS_NOUSBSTORAGE;
- else if (!strcasecmp(argv[i], "nousb"))
- flags |= LOADER_FLAGS_NOUSB;
- else if (!strcasecmp(argv[i], "ub"))
- flags |= LOADER_FLAGS_UB;
else if (!strcasecmp(argv[i], "allowwireless"))
flags |= LOADER_FLAGS_ALLOW_WIRELESS;
else if (!strcasecmp(argv[i], "telnet"))
flags |= LOADER_FLAGS_TELNETD;
- else if (!strcasecmp(argv[i], "nofirewire"))
- flags |= LOADER_FLAGS_NOIEEE1394;
- else if (!strcasecmp(argv[i], "nonet"))
- flags |= LOADER_FLAGS_NONET;
- else if (!strcasecmp(argv[i], "nostorage"))
- flags |= LOADER_FLAGS_NOSTORAGE;
else if (!strcasecmp(argv[i], "noprobe"))
- flags |= (LOADER_FLAGS_NONET | LOADER_FLAGS_NOSTORAGE | LOADER_FLAGS_NOUSB | LOADER_FLAGS_NOIEEE1394);
- else if (!strcasecmp(argv[i], "nopcmcia"))
- flags |= LOADER_FLAGS_NOPCMCIA;
+ flags |= LOADER_FLAGS_NOPROBE;
else if (!strcasecmp(argv[i], "text")) {
logMessage(INFO, "text mode forced from cmdline");
flags |= LOADER_FLAGS_TEXT;
@@ -794,6 +780,15 @@ static void parseCmdLineFlags(struct loaderData_s * loaderData,
flags |= LOADER_FLAGS_NOIPV6;
else if (!strcasecmp(argv[i], "kssendmac"))
flags |= LOADER_FLAGS_KICKSTART_SEND_MAC;
+ /* deprecated hardware bits */
+ else if (!strcasecmp(argv[i], "nousbstorage"))
+ mlAddBlacklist("usb-storage");
+ else if (!strcasecmp(argv[i], "nousb")) {
+ mlAddBlacklist("ehci-hcd");
+ mlAddBlacklist("ohci-hcd");
+ mlAddBlacklist("uhci-hcd");
+ } else if (!strcasecmp(argv[i], "nofirewire"))
+ mlAddBlacklist("firewire-ohci");
else if (!strncasecmp(argv[i], "loglevel=", 9)) {
if (!strcasecmp(argv[i]+9, "debug")) {
loaderData->logLevel = strdup(argv[i]+9);
diff --git a/loader2/loader.h b/loader2/loader.h
index 5bfc67a4a..a2001d291 100644
--- a/loader2/loader.h
+++ b/loader2/loader.h
@@ -36,7 +36,7 @@
#define LOADER_FLAGS_KICKSTART (((uint64_t) 1) << 4)
#define LOADER_FLAGS_KICKSTART_SEND_MAC (((uint64_t) 1) << 5)
#define LOADER_FLAGS_POWEROFF (((uint64_t) 1) << 6)
-#define LOADER_FLAGS_NONET (((uint64_t) 1) << 7)
+#define LOADER_FLAGS_NOPROBE (((uint64_t) 1) << 7)
#define LOADER_FLAGS_MODDISK (((uint64_t) 1) << 8)
/* #9 is the most delicious of all flags, also available for use */
#define LOADER_FLAGS_SERIAL (((uint64_t) 1) << 10)
@@ -45,21 +45,20 @@
#define LOADER_FLAGS_HALT (((uint64_t) 1) << 13)
#define LOADER_FLAGS_SELINUX (((uint64_t) 1) << 14)
#define LOADER_FLAGS_VIRTPCONSOLE (((uint64_t) 1) << 15)
-#define LOADER_FLAGS_NOUSB (((uint64_t) 1) << 16)
+/* #16 unused */
#define LOADER_FLAGS_NOSHELL (((uint64_t) 1) << 17)
#define LOADER_FLAGS_NOPCMCIA (((uint64_t) 1) << 18)
#define LOADER_FLAGS_TELNETD (((uint64_t) 1) << 19)
#define LOADER_FLAGS_NOPASS (((uint64_t) 1) << 20)
-#define LOADER_FLAGS_UB (((uint64_t) 1) << 21)
+/* #21 unused */
#define LOADER_FLAGS_MEDIACHECK (((uint64_t) 1) << 22)
-#define LOADER_FLAGS_NOUSBSTORAGE (((uint64_t) 1) << 23)
+/* #23 unused */
#define LOADER_FLAGS_ASKMETHOD (((uint64_t) 1) << 24)
#define LOADER_FLAGS_ASKNETWORK (((uint64_t) 1) << 25)
-#define LOADER_FLAGS_NOIEEE1394 (((uint64_t) 1) << 26)
-#define LOADER_FLAGS_NOFB (((uint64_t) 1) << 27)
+/* #26 unused */
+/* #27 unused */
#define LOADER_FLAGS_CMDLINE (((uint64_t) 1) << 28)
#define LOADER_FLAGS_GRAPHICAL (((uint64_t) 1) << 29)
-#define LOADER_FLAGS_NOSTORAGE (((uint64_t) 1) << 30)
#define LOADER_FLAGS_NOIPV4 (((uint64_t) 1) << 31)
#define LOADER_FLAGS_NOIPV6 (((uint64_t) 1) << 32)
#define LOADER_FLAGS_IP_PARAM (((uint64_t) 1) << 33)
@@ -74,31 +73,22 @@
#define FL_KICKSTART(a) ((a) & LOADER_FLAGS_KICKSTART)
#define FL_KICKSTART_SEND_MAC(a) ((a) & LOADER_FLAGS_KICKSTART_SEND_MAC)
#define FL_POWEROFF(a) ((a) & LOADER_FLAGS_POWEROFF)
-#define FL_NONET(a) ((a) & LOADER_FLAGS_NONET)
+#define FL_NOPROBE(a) ((a) & LOADER_FLAGS_NOPROBE)
#define FL_MODDISK(a) ((a) & LOADER_FLAGS_MODDISK)
#define FL_SERIAL(a) ((a) & LOADER_FLAGS_SERIAL)
#define FL_UPDATES(a) ((a) & LOADER_FLAGS_UPDATES)
#define FL_KSFILE(a) ((a) & LOADER_FLAGS_KSFILE)
-#define FL_NOUSB(a) ((a) & LOADER_FLAGS_NOUSB)
#define FL_NOSHELL(a) ((a) & LOADER_FLAGS_NOSHELL)
-#define FL_NOFB(a) ((a) & LOADER_FLAGS_NOFB)
-#define FL_NOPCMCIA(a) ((a) & LOADER_FLAGS_NOPCMCIA)
#define FL_TELNETD(a) ((a) & LOADER_FLAGS_TELNETD)
#define FL_NOPASS(a) ((a) & LOADER_FLAGS_NOPASS)
#define FL_MEDIACHECK(a) ((a) & LOADER_FLAGS_MEDIACHECK)
-#define FL_NOUSBSTORAGE(a) ((a) & LOADER_FLAGS_NOUSBSTORAGE)
#define FL_ASKMETHOD(a) ((a) & LOADER_FLAGS_ASKMETHOD)
-#define FL_NOIEEE1394(a) ((a) & LOADER_FLAGS_NOIEEE1394)
-#define FL_NOFB(a) ((a) & LOADER_FLAGS_NOFB)
#define FL_GRAPHICAL(a) ((a) & LOADER_FLAGS_GRAPHICAL)
#define FL_CMDLINE(a) ((a) & LOADER_FLAGS_CMDLINE)
#define FL_HALT(a) ((a) & LOADER_FLAGS_HALT)
#define FL_SELINUX(a) ((a) & LOADER_FLAGS_SELINUX)
#define FL_VIRTPCONSOLE(a) ((a) & LOADER_FLAGS_VIRTPCONSOLE)
-#define FL_NOSTORAGE(a) ((a) & LOADER_FLAGS_NOSTORAGE)
-#define FL_NOPROBE(a) (FL_NOSTORAGE((a)) | FL_NONET((a)))
#define FL_ASKNETWORK(a) ((a) & LOADER_FLAGS_ASKNETWORK)
-#define FL_UB(a) ((a) & LOADER_FLAGS_UB)
#define FL_NOIPV4(a) ((a) & LOADER_FLAGS_NOIPV4)
#define FL_NOIPV6(a) ((a) & LOADER_FLAGS_NOIPV6)
#define FL_IP_PARAM(a) ((a) & LOADER_FLAGS_IP_PARAM)
diff --git a/loader2/modules.c b/loader2/modules.c
index 4b49f2a9d..224f69d12 100644
--- a/loader2/modules.c
+++ b/loader2/modules.c
@@ -97,6 +97,13 @@ static void readBlacklist() {
}
}
+void mlAddBlacklist(char *module) {
+ blacklists = realloc(blacklists, sizeof(*blacklists) * (numblacklists + 1));
+ blacklists[numblacklists] = strdup(module);
+ numblacklists++;
+ writeModulesConf("/etc/modprobe.d/anaconda");
+}
+
static void addOption(const char *module, const char *option) {
int found = 0, i;
diff --git a/loader2/modules.h b/loader2/modules.h
index b276ce4ea..6c0d8adcd 100644
--- a/loader2/modules.h
+++ b/loader2/modules.h
@@ -25,5 +25,6 @@
void mlInitModuleConfig();
int mlLoadModule(const char * module, char ** args);
int mlLoadModuleSet(const char * modNames);
+void mlAddBlacklist(char *module);
void mlRemoveBlacklist(char *module);
#endif