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>
-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/
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
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