diff -urpN busybox-1.14.0/modutils/modprobe.c busybox-1.14.0-modprobe/modutils/modprobe.c --- busybox-1.14.0/modutils/modprobe.c 2009-04-14 01:42:55.000000000 +0200 +++ busybox-1.14.0-modprobe/modutils/modprobe.c 2009-05-27 12:02:34.000000000 +0200 @@ -109,7 +109,9 @@ static void add_probe(const char *name) struct module_entry *m; m = get_or_add_modentry(name); - if (m->flags & MODULE_FLAG_LOADED) { + if (!(option_mask32 & MODPROBE_OPT_REMOVE) + && (m->flags & MODULE_FLAG_LOADED) + ) { DBG("skipping %s, it is already loaded", name); return; } @@ -339,7 +341,7 @@ int modprobe_main(int argc UNUSED_PARAM, config_close(parser); } - if (opt & MODPROBE_OPT_INSERT_ALL) { + if (opt & (MODPROBE_OPT_INSERT_ALL | MODPROBE_OPT_REMOVE)) { /* Each argument is a module name */ do { add_probe(*argv++);