From: Daniel Walker This was reported by Ingo Molnar here, http://lkml.org/lkml/2006/12/18/119 The problem is that adummy_init() depends on atm_init() , but adummy_init() is called first. So I put atm_init() into subsys_initcall which seems appropriate, and it will still get module_init() if it becomes a module. Interesting to note that you could crash your system here if you just load the modules in the wrong order. Signed-off-by: Daniel Walker Cc: Ingo Molnar Cc: chas williams Signed-off-by: Andrew Morton --- net/atm/common.c | 3 ++- 1 files changed, 2 insertions(+), 1 deletion(-) diff -puN net/atm/common.c~fix-for-crash-in-adummy_init net/atm/common.c --- a/net/atm/common.c~fix-for-crash-in-adummy_init +++ a/net/atm/common.c @@ -816,7 +816,8 @@ static void __exit atm_exit(void) proto_unregister(&vcc_proto); } -module_init(atm_init); +subsys_initcall(atm_init); + module_exit(atm_exit); MODULE_LICENSE("GPL"); _