有没有办法检查初始化tasklet的tasklet_init函数是否失败?
答案 0 :(得分:1)
正如您所看到的那样,如果查看来源(kernel/softirq.c
):
void tasklet_init(struct tasklet_struct *t,
void (*func)(unsigned long), unsigned long data)
{
t->next = NULL;
t->state = 0;
atomic_set(&t->count, 0);
t->func = func;
t->data = data;
}
所有函数都设置了一些结构成员,因此tasklet_init
没有可能失败的方式。
通常,如果内核函数返回void
,那么您不需要检查它是否成功。当然,关于Linux内核的好处是你总是可以参考源代码,看看是否有任何方法可能会失败。