Привет. Я пытаюсь выделить память в ядре Linux с помощью kmalloc - PullRequest
0 голосов
/ 26 июня 2018

Я пытаюсь выделить память в ядре Linux с помощью kmalloc. У меня есть структура, разработанная, как показано ниже:

struct st_fetch_point {
    struct sk_buff *end_pkt ;
    struct sk_buff *start_pkt ;
    struct sk_buff *current_pkt ;
    struct st_fetch_point *next_fortp ;
    struct st_fetch_point *next_consec ;
};

Я создал новую структуру типа st_fetch_point и пытаюсь выделить память и присвоить значения указателям на элементы следующим образом:

struct st_fetch_point *first_fetch_point;

first_fetch_point = kmalloc((sizeof(struct st_fetch_point)), GFP_ATOMIC);

if (!first_fetch_point)
        return -ENOMEM;

skb = tcp_send_head(meta_sk);

first_fetch_point->start_pkt = skb;
first_fetch_point->current_pkt = skb;
first_fetch_point->end_pkt = NULL;
first_fetch_point->next_fortp = NULL;
first_fetch_point->next_consec = NULL;

Но похоже, что ядро ​​зависает каждый раз, когда дело доходит до строки выполнения kmalloc (). Я работаю над Ubuntu 14.04 и действительно в исправлении. Я проверил файлы syslog и kernlog и не нашел никаких необычных сообщений, связанных с зависанием. Это проблема с методом выделения kmalloc ()?

...