chiark / gitweb /
builtin: kmod - depend on libkmod >= 5
authorLucas De Marchi <lucas.demarchi@profusion.mobi>
Mon, 6 Feb 2012 23:47:00 +0000 (21:47 -0200)
committerKay Sievers <kay.sievers@vrfy.org>
Mon, 6 Feb 2012 23:49:59 +0000 (00:49 +0100)
configure.ac
src/udev-builtin-kmod.c

index 6038f26..d9e3f67 100644 (file)
@@ -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])
index d0a1f28..57e813f 100644 (file)
@@ -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;
 }