modules: warn about suspicious return values from module's ->init() hook
Changes
1 files changed · +8 −0
| File | Status | Add | Del | Content |
|---|---|---|---|---|
| kernel/module.c | modified | +8 | −0 | View file |
kernel/module.c
View filediff --git a/kernel/module.c b/kernel/module.c
index 68d05d2..5d437bf 100644
--- a/kernel/module.c
+++ b/kernel/module.c
@@ -2178,6 +2178,14 @@ sys_init_module(void __user *umod,
wake_up(&module_wq);
return ret;
}
+ if (ret > 0) {
+ printk(KERN_WARNING "%s: '%s'->init suspiciously returned %d, "
+ "it should follow 0/-E convention\n"
+ KERN_WARNING "%s: loading module anyway...\n",
+ __func__, mod->name, ret,
+ __func__);
+ dump_stack();
+ }
/* Now it's a first class citizen! Wake up anyone waiting for it. */
mod->state = MODULE_STATE_LIVE;