testsuite/module-playground/mod-loop-e.c \
testsuite/module-playground/mod-loop-f.c \
testsuite/module-playground/mod-loop-g.c \
+ testsuite/module-playground/mod-loop-h.c \
+ testsuite/module-playground/mod-loop-i.c \
+ testsuite/module-playground/mod-loop-j.c \
+ testsuite/module-playground/mod-loop-k.c \
testsuite/module-playground/mod-loop.h \
testsuite/module-playground/mod-simple.c \
testsuite/module-playground/mod-simple-i386.ko \
# |-> mod-loop-f |-> mod-loop-f
# \-> mod-loop-g \-> mod-loop-g
# 2) mod-loop-d -> mod-loop-e -> mod-loop-d
+# 3.1) mod-loop-h -> mod-loop-i -> mod-loop-j -> mod-loop-h
+# 3.2) mod-loop-h -> mod-loop-i -> mod-loop-j -> mod-loop-k -> mod-loop-h
+
obj-m += mod-loop-a.o
obj-m += mod-loop-b.o
obj-m += mod-loop-c.o
obj-m += mod-loop-e.o
obj-m += mod-loop-f.o
obj-m += mod-loop-g.o
+obj-m += mod-loop-h.o
+obj-m += mod-loop-i.o
+obj-m += mod-loop-j.o
+obj-m += mod-loop-k.o
# mod-fake-*: fake the respective modules in kernel with these aliases. Aliases
# list was taken from 3.5.4
--- /dev/null
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/printk.h>
+
+#include "mod-loop.h"
+
+static int __init test_module_init(void)
+{
+ printH();
+ printI();
+
+ return 0;
+}
+module_init(test_module_init);
+
+void printH(void)
+{
+ pr_warn("Hello, world H\n");
+}
+EXPORT_SYMBOL(printH);
+
+MODULE_AUTHOR("Lucas De Marchi <lucas.demarchi@intel.com>");
+MODULE_LICENSE("LGPL");
--- /dev/null
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/printk.h>
+
+#include "mod-loop.h"
+
+static int __init test_module_init(void)
+{
+ printI();
+ printJ();
+
+ return 0;
+}
+module_init(test_module_init);
+
+void printI(void)
+{
+ pr_warn("Hello, world I\n");
+}
+EXPORT_SYMBOL(printI);
+
+MODULE_AUTHOR("Lucas De Marchi <lucas.demarchi@intel.com>");
+MODULE_LICENSE("LGPL");
--- /dev/null
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/printk.h>
+
+#include "mod-loop.h"
+
+static int __init test_module_init(void)
+{
+ printJ();
+ printH();
+ printK();
+
+ return 0;
+}
+module_init(test_module_init);
+
+void printJ(void)
+{
+ pr_warn("Hello, world J\n");
+}
+EXPORT_SYMBOL(printJ);
+
+MODULE_AUTHOR("Lucas De Marchi <lucas.demarchi@intel.com>");
+MODULE_LICENSE("LGPL");
--- /dev/null
+#define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
+
+#include <linux/init.h>
+#include <linux/module.h>
+#include <linux/printk.h>
+
+#include "mod-loop.h"
+
+static int __init test_module_init(void)
+{
+ printK();
+ printH();
+
+ return 0;
+}
+module_init(test_module_init);
+
+void printK(void)
+{
+ pr_warn("Hello, world K\n");
+}
+EXPORT_SYMBOL(printK);
+
+MODULE_AUTHOR("Lucas De Marchi <lucas.demarchi@intel.com>");
+MODULE_LICENSE("LGPL");
void printE(void);
void printF(void);
void printG(void);
+void printH(void);
+void printI(void);
+void printJ(void);
+void printK(void);
["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-e.ko"]="mod-loop-e.ko"
["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-f.ko"]="mod-loop-f.ko"
["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-g.ko"]="mod-loop-g.ko"
+ ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-h.ko"]="mod-loop-h.ko"
+ ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-i.ko"]="mod-loop-i.ko"
+ ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-j.ko"]="mod-loop-j.ko"
+ ["test-depmod/detect-loop/lib/modules/4.4.4/kernel/mod-loop-k.ko"]="mod-loop-k.ko"
["test-dependencies/lib/modules/4.0.20-kmod/kernel/fs/foo/"]="mod-foo-b.ko"
["test-dependencies/lib/modules/4.0.20-kmod/kernel/"]="mod-foo-c.ko"
["test-dependencies/lib/modules/4.0.20-kmod/kernel/lib/"]="mod-foo-a.ko"
depmod: ERROR: Cycle detected: mod_loop_d -> mod_loop_e -> mod_loop_d
-depmod: ERROR: Cycle detected: mod_loop_b -> mod_loop_c -> mod_loop_a -> mod_loop_b
-depmod: ERROR: Found 5 modules in dependency cycles!
+depmod: ERROR: Cycle detected: mod_loop_i -> mod_loop_j -> mod_loop_k -> mod_loop_h -> mod_loop_i
+depmod: ERROR: Cycle detected: mod_loop_i -> mod_loop_j -> mod_loop_h -> mod_loop_i
+depmod: ERROR: Cycle detected: mod_loop_c -> mod_loop_a -> mod_loop_b -> mod_loop_c
+depmod: ERROR: Found 9 modules in dependency cycles!