我正在研究内核模块,我想在加载模块之前做一些检查。但是,如果某些检查失败,我无法优雅地阻止模块加载。如果module_init函数返回非零值,则会导致内核崩溃我的系统。
如何在不破坏内核的情况下停止模块初始化?例如,只是打印错误消息等。
static int timer_init(void){
...
if (OK)
return 0;
else:
return -EINVAL;
}
static void timer_exit(void) {
....
}
module_init(timer_init);
module_exit(timer_exit);
谢谢!