Как проверить, произошел ли сбой вызова tasklet_init? - PullRequest
0 голосов
/ 07 октября 2011

Есть ли способ проверить, не сработала ли функция tasklet_init, которая инициализирует тасклет?

1 Ответ

1 голос
/ 07 октября 2011

Как вы увидели бы, если бы вы посмотрели на источник (в 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 состоит в том, что вы всегда можете обратиться к источнику и посмотреть, есть ли какие-то способы, которые могут что-то не дать.

...