Ошибка ядра: не удается обработать запрос подкачки ядра на ffffff81e00520

grep раствор:

Образецinput.txt:

sfsfds|sfsf|sfdsf|||
s@ds|fsfsf|fssfsdf|sfsdfdfs
sdfsdfsfs
afafafs sdfsfd dfsfsfs

var='^[[:alnum:]]+[[:alnum:]\|]*$'
grep -E "$var" input.txt

Выход:

sfsfds|sfsf|sfdsf|||
sdfsdfsfs
0
22.01.2020, 12:16
1 ответ

Учитывая сообщение, которое вы получаете:

[96963.055549] BUG: unable to handle kernel paging request at ffffffff81e00520

Я бы покопался в ваших функциях set_page_ro()и set_page_rw().

Тем более, что в сообщении содержится адрес, указанный вами для таблицы системных вызовов (ffffffff81e00520 ).

Почему вы жестко запрограммировали его с таким значением? Могу поспорить, что ядро ​​экспортирует макрос или extern void *или что-то в этом роде, чтобы получить правильное значение...

ОТРЕДАКТИРОВАНО:Таким образом, адрес, полученный с помощью System.map работающего ядра, может быть хорошим. Но если вы посмотрите на этот код , процесс переключения страницы RW/RO выглядит иначе, чем вы делали...

Когда вы делаете:

if (pte->pte &~ _PAGE_RW) pte->pte |= _PAGE_RW;

Пример кода на github сделать:

set_pte_atomic(pte, pte_clear_flags(*pte, _PAGE_RW));
1
28.01.2020, 02:54

Теги

Похожие вопросы