Я пытаюсь сделать простой модуль ядра с многопоточностью. Поэтому я использую linux / kthread.h, ядро v. 5.2.11
Проблема: я не могу передать массив символов в поток: ошибка сегментации.
Это то, что яделать:
typedef struct {
int num;
char origin[MAXSTR]; //part of input for current thread
struct completion wait_for_thread; //completion struct
} kthread_arg;
Затем:
struct task_struct *task;
static kthread_arg kta_first_thread;
kta_first_thread.num = 1;
strncpy(kta_first_thread.origin, dat1, MAXSTR );
//Here I have normal char array 'origin'
init_completion(&kta_first_thread.wait_for_thread);
task = kthread_run(&thread_function, (void*)&kta_first_thread, "one");
И после этого у меня появляется ошибка. Более того, если вы удалите массив из структуры, то все работает. Я уверен, что делаешь что-то не так?