backports: add backport version to all modules
authorJohannes Berg <johannes.berg@intel.com>
Tue, 9 Apr 2013 09:09:44 +0000 (11:09 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 9 Apr 2013 17:04:00 +0000 (19:04 +0200)
We print out the backports version at runtime, but it
can also be useful to be able to determine it from the
installed modules.

As we already override module_init() to make all our
backported modules depend on compat.ko (in order to do
exactly this -- print out the version at runtime) also
add some MODULE_VERSION directives to it.

This results in, for example for mac80211, this:

$ /sbin/modinfo .../net/mac80211/mac80211.ko
filename:       .../net/mac80211/mac80211.ko
license:        GPL
description:    IEEE 802.11 subsystem
version:        backported from: Linux (next-20130405-0-g7df052b)
version:        backports: 6e0475b
srcversion:     6C298E6033E34EA8E223D7B
depends:        cfg80211,compat
vermagic:       3.8.0 SMP mod_unload modversions
parm:           max_nullfunc_tries:Maximum nullfunc tx tries before disconnecting (reason 4). (int)
parm:           max_probe_tries:Maximum probe tries before disconnecting (reason 4). (int)
parm:           probe_wait_ms:Maximum time(ms) to wait for probe response before disconnecting (reason 4). (int)
parm:           ieee80211_default_rc_algo:Default rate control algorithm for mac80211 to use (charp)

Fuck-yeah: Luis R. Rodriguez <mcgrof@do-not-panic.com>
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
backport/Makefile.kernel
backport/compat/Makefile
backport/include/linux/compat-2.6.h

index 4d00bda6f1347b4812c727e5ccfa489b70f2f5da..54a121872dcf452675e5a76230b3fe1c887b988c 100644 (file)
@@ -9,6 +9,9 @@ NOSTDINC_FLAGS := \
        -I$(M)/include/drm \
        -include $(M)/include/linux/compat-2.6.h \
        $(call backport-cc-disable-warning, unused-but-set-variable) \
+       -DBACKPORTS_VERSION=\"$(BACKPORTS_VERSION)\" \
+       -DBACKPORTED_KERNEL_VERSION=\"$(BACKPORTED_KERNEL_VERSION)\" \
+       -DBACKPORTED_KERNEL_NAME=\"$(BACKPORTED_KERNEL_NAME)\" \
        $(CFLAGS)
 
 obj-y += compat/
index 62dd531c7ac60db2e7439c024a53903760984f8a..499d4c024a134eb1931932413ab7a5bb4edb5f36 100644 (file)
@@ -1,7 +1,4 @@
 ccflags-y += -I$(src)
-ccflags-y += -DBACKPORTS_VERSION=\"$(BACKPORTS_VERSION)\"
-ccflags-y += -DBACKPORTED_KERNEL_VERSION=\"$(BACKPORTED_KERNEL_VERSION)\"
-ccflags-y += -DBACKPORTED_KERNEL_NAME=\"$(BACKPORTED_KERNEL_NAME)\"
 obj-m += compat.o
 compat-y += main.o
 
index 57a1c134a952f596b4e1671b04a74e7cb61bbf06..408fc6072b4fd7f9271930ec98bd7627d6dbffb4 100644 (file)
@@ -38,7 +38,11 @@ void backport_dependency_symbol(void);
                backport_dependency_symbol();                           \
                return initfn();                                        \
        }                                                               \
-       int init_module(void) __attribute__((alias("__init_backport")));
+       int init_module(void) __attribute__((alias("__init_backport")));\
+       MODULE_VERSION("backports: " BACKPORTS_VERSION);                \
+       MODULE_VERSION("backported from: "                              \
+                       BACKPORTED_KERNEL_NAME " ("                     \
+                       BACKPORTED_KERNEL_VERSION ")");
 
 /*
  * Each compat file represents compatibility code for new kernel