]> git.ipfire.org Git - thirdparty/kmod.git/commitdiff
libkmod: Add missing definitions
authorLucas De Marchi <lucas.de.marchi@gmail.com>
Tue, 9 Apr 2013 07:00:20 +0000 (04:00 -0300)
committerLucas De Marchi <lucas.de.marchi@gmail.com>
Tue, 9 Apr 2013 07:05:09 +0000 (04:05 -0300)
Depending on kernel header and simply not passing the flags in
finit_module() if this header is not found is not good.

Add a missing.h header in which stuff like this should be added.

Makefile.am
libkmod/libkmod-module.c
libkmod/libkmod-private.h
libkmod/missing.h [new file with mode: 0644]

index 9feaf96d09327cd7248145ba6ec86e180279c345..1680fe6af46c28e1e14da6a013e74d5823b5b84f 100644 (file)
@@ -55,6 +55,7 @@ libkmod_libkmod_la_SOURCES =\
        libkmod/libkmod.h \
        libkmod/libkmod-private.h \
        libkmod/macro.h \
+       libkmod/missing.h \
        libkmod/libkmod.c \
        libkmod/libkmod-list.c \
        libkmod/libkmod-config.c \
index 7b38e648891de3e261cca3f5e59a1ab695a24b7c..f701d47bce47806b70cb1b7c446fd6ded1f6f45e 100644 (file)
@@ -819,12 +819,10 @@ KMOD_EXPORT int kmod_module_insert_module(struct kmod_module *mod,
        if (kmod_file_get_direct(file)) {
                unsigned int kernel_flags = 0;
 
-#ifdef HAVE_LINUX_MODULE_H
                if (flags & KMOD_INSERT_FORCE_VERMAGIC)
                        kernel_flags |= MODULE_INIT_IGNORE_VERMAGIC;
                if (flags & KMOD_INSERT_FORCE_MODVERSION)
                        kernel_flags |= MODULE_INIT_IGNORE_MODVERSIONS;
-#endif
 
                err = finit_module(kmod_file_get_fd(file), args, kernel_flags);
                if (err == 0 || errno != ENOSYS)
index 8d8599a253a6bfa8d40cd7e0a74027c8f4c878de..078a51a3f55d7b1659f954115646d438900530da 100644 (file)
@@ -5,6 +5,7 @@
 #include <syslog.h>
 #include <limits.h>
 
+#include "missing.h"
 #include "macro.h"
 #include "libkmod.h"
 
diff --git a/libkmod/missing.h b/libkmod/missing.h
new file mode 100644 (file)
index 0000000..6ff754f
--- /dev/null
@@ -0,0 +1,13 @@
+#pragma once
+
+#ifdef HAVE_LINUX_MODULE_H
+#include <linux/module.h>
+#endif
+
+#ifndef MODULE_INIT_IGNORE_MODVERSIONS
+# define MODULE_INIT_IGNORE_MODVERSIONS 1
+#endif
+
+#ifndef MODULE_INIT_IGNORE_VERMAGIC
+# define MODULE_INIT_IGNORE_VERMAGIC 2
+#endif