diff options
-rw-r--r-- | modutils/modprobe.c | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/modutils/modprobe.c b/modutils/modprobe.c index eeeff7609..c334186b8 100644 --- a/modutils/modprobe.c +++ b/modutils/modprobe.c | |||
@@ -663,6 +663,25 @@ int modprobe_main(int argc UNUSED_PARAM, char **argv) | |||
663 | load_modules_dep(); | 663 | load_modules_dep(); |
664 | } | 664 | } |
665 | 665 | ||
666 | /* Handle modprobe.blacklist=module1,module2,... */ | ||
667 | if (ENABLE_FEATURE_MODPROBE_BLACKLIST) { | ||
668 | char *options; | ||
669 | char *substr; | ||
670 | |||
671 | options = parse_and_add_kcmdline_module_options(NULL, "modprobe"); | ||
672 | while ((substr = strsep(&options, " ")) != NULL) { | ||
673 | char *fn = is_prefixed_with(substr, "blacklist="); | ||
674 | if (!fn) | ||
675 | continue; | ||
676 | while ((substr = strsep(&fn, ",")) != NULL) { | ||
677 | /* blacklist <modulename> */ | ||
678 | get_or_add_modentry(substr)->flags |= MODULE_FLAG_BLACKLISTED; | ||
679 | DBG("blacklist: %s", substr); | ||
680 | } | ||
681 | } | ||
682 | /*free(options); - WRONG, strsep may have advanced it */ | ||
683 | } | ||
684 | |||
666 | rc = 0; | 685 | rc = 0; |
667 | while ((me = llist_pop(&G.probes)) != NULL) { | 686 | while ((me = llist_pop(&G.probes)) != NULL) { |
668 | if (me->realnames == NULL) { | 687 | if (me->realnames == NULL) { |