插入模块时出现以下错误信息:
[root@zlg tmp]# insmod usbpll.ko
yll:usb init
sys_init_module: 'usbpll'->init suspiciously returned 17, it should follow 0/-E convention
sys_init_module: loading module anyway...
[<c02d1fc8>] (dump_stack+0x0/0x14) from [<c0066304>] (sys_init_module+0x118/0x188)
[<c00661ec>] (sys_init_module+0x0/0x188) from [<c0024d40>] (ret_fast_syscall+0x0/0x2c)
r7:00000080 r6:00000000 r5:00000000 r4:00000000
原因:
init函数没有返回值。
修正方法:
增加模块init函数的返回值。
代码分析:
sys_init_module中有这么一段代码:
从上面的代码可以看出,模块的init函数只能返回0或者负的错误 码。返回一个正值就会打印出
“sys_init_module: 'usbpll'->init suspiciously returned 17, it should follow 0/-E convention”类似的话。
参考: