A Linux 6.19-rc3 kernelben javították azt a kritikus EFI-hibát, amely kernelpánikot okozott az ARM64 eszközökön

Az ARM64 architektúra szempontjából a 6.19-es kernel fejlesztési ciklusa nem indult a legfényesebben. A teljesítményben és működésben tapasztalható kisebb visszalépések mellett hamar kiderült, hogy az EFI-alapú ARM64 gépek egy része még az indulás első pillanataiban összeomlik. Bár ezen a platformon az EFI elsősorban a szerverek körében számít általánosnak, és kevésbé jellemző a kisméretű mikroszámítógépekre, a hiba így is kellemetlenül érintette a 6.19-es fejlesztői verziókat kipróbálókat. A gond forrását végül gyorsan sikerült feltárni, és a szükséges javítás időben bekerült a kernelbe, még a 6.19-rc3 közzététele előtt.

A Linux 6.19-rc3 kernelben javították azt a kritikus EFI-hibát, amely kernelpánikot okozott az ARM64 eszközökön

Az EFI és az ARM64-specifikus összeomlás háttere

A forráskód alapos vizsgálata során kiderült, hogy az érintett ARM64 rendszerek indítás közben egy nem inicializált mutatóhoz próbáltak hozzáférni, ami azonnali kernelösszeomlást váltott ki. Hamar nyilvánvalóvá vált, hogy nem egy általános Linux-hibáról, hanem egy kifejezetten az ARM64 architektúrát és az EFI futásidejű szolgáltatásainak hívási mechanizmusát érintő problémáról van szó. A regresszió egy korábbi változtatásból ered, amely módosította, hogyan hívja a kernel az EFI runtime szolgáltatásait. Ennek következtében az egyik belső memóriastruktúrából kimaradt egy kulcsfontosságú inicializálás. Míg ez korábban nem okozott különösebb gondot, az új hívási útvonal már számolt ennek meglétével, így bizonyos jogosultságellenőrzések során a rendszer NULL mutatóra támaszkodott, ami végül elkerülhetetlenül összeomlást eredményezett.

Egy soros javítás, jelentős következményekkel

A megoldás meglepően egyszerűnek bizonyult: mindössze egyetlen sor hozzáadására volt szükség ahhoz, hogy az érintett EFI-hez tartozó memóriastruktúra megfelelően inicializálja a felhasználói névteret. Ez biztosítja, hogy a jogosultságellenőrzések során a kernel már érvényes adatokkal dolgozzon, és ne fusson végzetes hibába. A javítást pénteken beolvasztották a fő kernelágba, így már részét képezte a vasárnap megjelenő Linux 6.19-rc3 kiadásnak.