Не удается получить доступ к странице возврата структуры из get_user_pages_fast () - PullRequest
0 голосов
/ 04 марта 2019

Это пользовательский поток, выполняющийся в режиме ядра.
Возвращаемое значение get_user_pages_fast больше 0. (Меньше 10)
Но система перестала работать, когда я вызываю put_page() или printполе структуры страницы.(последние две строки кода)

struct pinned_page{
struct page *pages[10];
int num;
};

struct pinned_page *pp = (struct pinned_page*)kzalloc(5*sizeof(struct pinned_page),GFP_KERNEL);

r = get_user_pages_fast(addr, n_page, 0, pp[0].pages);
printk(KERN_DEBUG "get_user_page_back=%d\n",r);

printk(KERN_DEBUG "page_flags:%u  ",pp[0].pages[0]->flags);
put_page(pp[0].pages[0]);

Будет полезно, если вы дадите мне несколько советов.

...