1 /*
2  * This module emits "Hello, world" on printk when loaded.
3  *
4  * It is designed to be used for basic evaluation of the module loading
5  * subsystem (for example when validating module signing/verification). It
6  * lacks any extra dependencies, and will not normally be loaded by the
7  * system unless explicitly requested by name.
8  */
9 
10 #define pr_fmt(fmt) KBUILD_MODNAME ": " fmt
11 
12 #include <linux/init.h>
13 #include <linux/module.h>
14 #include <linux/printk.h>
15 
test_module_init(void)16 static int __init test_module_init(void)
17 {
18 	pr_warn("Hello, world\n");
19 
20 	return 0;
21 }
22 
23 module_init(test_module_init);
24 
test_module_exit(void)25 static void __exit test_module_exit(void)
26 {
27 	pr_warn("Goodbye\n");
28 }
29 
30 module_exit(test_module_exit);
31 
32 MODULE_AUTHOR("Kees Cook <keescook@chromium.org>");
33 MODULE_LICENSE("GPL");
34