Я разработал модуль ядра для установки другого батута 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.
У кого-нибудь есть предложения?