diff options
-rw-r--r-- | configure.ac | 2 | ||||
-rw-r--r-- | src/udev-builtin-kmod.c | 16 |
2 files changed, 6 insertions, 12 deletions
diff --git a/configure.ac b/configure.ac index 6038f26ce1..d9e3f67bbe 100644 --- a/configure.ac +++ b/configure.ac @@ -25,7 +25,7 @@ AC_SEARCH_LIBS([clock_gettime], [rt], [], [AC_MSG_ERROR([POSIX RT library not fo PKG_CHECK_MODULES(BLKID, blkid >= 2.20) -PKG_CHECK_MODULES(KMOD, libkmod >= 3) +PKG_CHECK_MODULES(KMOD, libkmod >= 5) if test "x$cross_compiling" = "xno" ; then AC_CHECK_FILES([/usr/share/pci.ids], [pciids=/usr/share/pci.ids]) diff --git a/src/udev-builtin-kmod.c b/src/udev-builtin-kmod.c index d0a1f28e2f..57e813f863 100644 --- a/src/udev-builtin-kmod.c +++ b/src/udev-builtin-kmod.c @@ -36,7 +36,6 @@ static struct kmod_ctx *ctx; static int load_module(struct udev *udev, const char *alias) { struct kmod_list *list = NULL; - struct kmod_list *listb = NULL; struct kmod_list *l; int err; @@ -44,20 +43,16 @@ static int load_module(struct udev *udev, const char *alias) if (err < 0) return err; - err = kmod_module_get_filtered_blacklist(ctx, list, &listb); - if (err < 0) - return err; - if (list == NULL) info(udev, "no module matches '%s'\n", alias); - else if (listb == NULL) - info(udev, "modules matching '%s' are blacklisted\n", alias); - kmod_list_foreach(l, listb) { + kmod_list_foreach(l, list) { struct kmod_module *mod = kmod_module_get_module(l); - err = kmod_module_probe_insert_module(mod, 0, NULL, NULL, NULL); - if (err >=0 ) + err = kmod_module_probe_insert_module(mod, KMOD_PROBE_APPLY_BLACKLIST, NULL, NULL, NULL, NULL); + if (err == KMOD_PROBE_APPLY_BLACKLIST) + info(udev, "module '%s' is blacklisted\n", kmod_module_get_name(mod)); + else if (err == 0) info(udev, "inserted '%s'\n", kmod_module_get_name(mod)); else info(udev, "failed to insert '%s'\n", kmod_module_get_name(mod)); @@ -66,7 +61,6 @@ static int load_module(struct udev *udev, const char *alias) } kmod_module_unref_list(list); - kmod_module_unref_list(listb); return err; } |