当前位置: 代码迷 >> 驱动开发 >> 设备初始化中的device_create返回值需要判断返回值吗?解决思路
  详细解决方案

设备初始化中的device_create返回值需要判断返回值吗?解决思路

热度:55   发布时间:2016-04-28 10:34:00.0
设备初始化中的device_create返回值需要判断返回值吗?
我看见一些内核函数没有判断返回值,是经验不会出问题不需判断,还是别的原因?另外,有些异常分支中有
unlikely((x) >= (unsigned long)-MAX_ERRNO)这是什么意思?(#define MAX_ERRNO 4095)是很少出现这种情况,可以优化的意思吗?谢谢。
------解决方案--------------------
引用:
我看见一些内核函数没有判断返回值,是经验不会出问题不需判断,还是别的原因?另外,有些异常分支中有
unlikely((x) >= (unsigned long)-MAX_ERRNO)这是什么意思?(#define MAX_ERRNO 4095)是很少出现这种情况,可以优化的意思吗?谢谢。

define IS_ERR_VALUE(x) unlikely((x) >= (unsigned long)-MAX_ERRNO)
可以这样理解,x >= (unsigned long)-MAX_ERRNO的可能性要小,也就是说x为错误指针的可能性要小,这也完全符合实际情况,因为内核函数返回指针出错的概率要比正确的概率小。

(x) >= (unsigned long)-MAX_ERRNO来判断内核函数的返回值是一个有效的指针,还是一个出错代码。