tests: add support for kernel >= v4.5 95/177395/1
authorVyacheslav Cherkashin <v.cherkashin@samsung.com>
Mon, 16 Apr 2018 13:10:51 +0000 (16:10 +0300)
committerVyacheslav Cherkashin <v.cherkashin@samsung.com>
Fri, 27 Apr 2018 11:58:35 +0000 (14:58 +0300)
Change-Id: I420156efbe222c7009613253d3beb4f2dc705a76
Signed-off-by: Vyacheslav Cherkashin <v.cherkashin@samsung.com>
modules/tests/kprobe_tests/kp_module.c

index a0e1c805fdcaafab27c724e17986bf1378aa483d..2db00c962e363cedae0083402e2369016c522d55 100644 (file)
@@ -23,6 +23,7 @@
 #include <linux/module.h>
 #include <linux/string.h>
 #include <linux/uaccess.h>
+#include <linux/version.h>
 #include <linux/kallsyms.h>
 #include "kp_module.h"
 
@@ -71,10 +72,23 @@ void olog(const char *fmt, ...)
 static void print_mod_info(void)
 {
        struct module *mod = THIS_MODULE;
+       void *init_begin, *init_end, *core_begin, *core_end;
+
+#if LINUX_VERSION_CODE >= KERNEL_VERSION(4, 5, 0)
+       init_begin = mod->init_layout.base;
+       init_end = mod->init_layout.base + mod->init_layout.text_size;
+       core_begin = mod->core_layout.base;
+       core_end = mod->core_layout.base + mod->core_layout.text_size;
+#else
+       init_begin = mod->module_init;
+       init_end = mod->module_init + mod->init_text_size;
+       core_begin = mod->module_core;
+       core_end = mod->module_core + mod->core_text_size;
+#endif
 
        printk("### MOD_INFO:\n");
-       printk("    core: %p..%p\n", mod->module_init, mod->module_init + mod->init_text_size);
-       printk("    init: %p..%p\n", mod->module_core, mod->module_core + mod->core_text_size);
+       printk("    init: %p..%p\n", init_begin, init_end);
+       printk("    core: %p..%p\n", core_begin, core_end);
        printk("\n");
 }