Как изменить регистр MSR_LSTAR, не вызывая зависание системы - PullRequest
0 голосов
/ 11 мая 2019

Я разработал модуль ядра для установки другого батута syscall_64. Для этого мне нужно изменить значение регистра MSR_LSTAR на адрес моего батута. Я пытался изменить значение регистра MSR_LSTAR на всех процессорах, доступных через функцию on_each_cpu и функцию wrmsrl.

Это заставляет мою систему зависать / зависать, поэтому я вынужден выключить и перезагрузить систему.

В результате этого действия не создаются журналы и не вызывается паника ядра.

Я также попытался изменить значение MSR_LSTAR на 0, чтобы в результате все пользовательские задачи аварийно завершали работу, но система зависала и никаких журналов не вызывало паники.

Я тестировал его на Lenovo IdeaPad 330, монтирующем linux-kernel-5.0.11 с процессорной аркой amd-a6: x86_64.

У кого-нибудь есть предложения?

...