From ae84b11467c56316a43de6146100ce22f24cf622 Mon Sep 17 00:00:00 2001 From: Denis Vlasenko Date: Thu, 22 May 2008 17:37:38 +0000 Subject: modprobe: fix for blacklisting The patch makes the order of the alias/blacklist in modprobe.conf irrelevant (like module-utils' modprobe). In first patch the alias had to be defined before the blacklist which caused problems because the modprobe.conf file is read before /lib/modules/*/modules.alias. The attatched patch will mark the blacklisted module itself rather than trying to find the alias that points to the blacklisted module and test this flag later in the alias resolving stage. --- modutils/modprobe.c | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) (limited to 'modutils/modprobe.c') diff --git a/modutils/modprobe.c b/modutils/modprobe.c index 60dc92665..b7903469d 100644 --- a/modutils/modprobe.c +++ b/modutils/modprobe.c @@ -332,7 +332,7 @@ static void include_conf(struct dep_t **first, struct dep_t **current, char *buf mod = skip_whitespace(buffer + 10); for (dt = *first; dt; dt = dt->m_next) { - if (dt->m_isalias && strcmp(dt->m_deparr[0], mod) == 0) + if (strcmp(dt->m_name, mod) == 0) break; } if (dt) @@ -748,12 +748,13 @@ static void check_dep(char *mod, struct mod_list_t **head, struct mod_list_t **t // resolve alias names while (dt->m_isalias) { - if (dt->m_depcnt == 1 && !(ENABLE_FEATURE_MODPROBE_BLACKLIST && - dt->m_isblacklisted)) { + if (dt->m_depcnt == 1) { struct dep_t *adt; for (adt = depend; adt; adt = adt->m_next) { - if (check_pattern(adt->m_name, dt->m_deparr[0]) == 0) + if (check_pattern(adt->m_name, dt->m_deparr[0]) == 0 && + !(ENABLE_FEATURE_MODPROBE_BLACKLIST && + adt->m_isblacklisted)) break; } if (adt) { -- cgit v1.2.3