我正在编写一个内核模块,如果出错,它将返回错误代码。我的问题是这些代码将由init_module
返回。我目前只有一种情况,我的内核模块将失败,错误代码将是-1
,这被解释为存在权限问题。这意味着它与实际上没有加载模块权限的进程的情况无法区分。那么,我应该使用哪些代码?低于内核errno头中定义的最低错误的数字?
答案 0 :(得分:0)
正如Tsyvarev所说,如果错误号描述了正确加载模块的问题,则可以(确实应该)返回此错误代码(取反,{ {1}})。但是对于init_module()
中使用的错误或为系统调用insmod
记录的错误,您应该对此规则进行例外处理,因为e。 G。 init_module
函数中的return -ENOENT
使init_module()
误导输出insmod
。最好使用EIDRM,EUCLEAN或ECANCELED等不太容易理解的错误代码代替这些错误。