内核模块在Linux上应该使用哪些错误代码?

时间:2016-12-10 19:55:04

标签: linux linux-kernel kernel-module

我正在编写一个内核模块,如果出错,它将返回错误代码。我的问题是这些代码将由init_module返回。我目前只有一种情况,我的内核模块将失败,错误代码将是-1,这被解释为存在权限问题。这意味着它与实际上没有加载模块权限的进程的情况无法区分。那么,我应该使用哪些代码?低于内核errno头中定义的最低错误的数字?

1 个答案:

答案 0 :(得分:0)

正如Tsyvarev所说,如果错误号描述了正确加载模块的问题,则可以(确实应该)返回此错误代码(取反,{ {1}})。但是对于init_module()中使用的错误或为系统调用insmod记录的错误,您应该对此规则进行例外处理,因为e。 G。 init_module函数中的return -ENOENT使init_module()误导输出insmod。最好使用EIDRM,EUCLEAN或ECANCELED等不太容易理解的错误代码代替这些错误。