Il kernel Linux 6.19 continua la sua fase di stabilizzazione con l'arrivo di correzioni critiche che riguardano sia il controverso driver Rust Binder di Google sia il supporto hardware per la prossima generazione di processori Intel. L'aggiornamento char/misc appena integrato nel ramo di sviluppo che porterà alla release candidate 6.19-rc5 risolve un problema di deadlock nel codice Rust e aggiunge l'identificativo di dispositivo per Nova Lake Point S, confermando l'espansione della famiglia di SoC Intel destinati al mercato embedded e IoT.
Il driver Rust Binder, implementazione alternativa in Rust del componente Binder utilizzato da Android per la comunicazione inter-processo, torna sotto i riflettori dopo essere stato il primo codice Rust nel kernel Linux a ricevere un CVE. Questa volta si tratta di un bug introdotto durante il porting del driver per l'integrazione nella versione 6.18 del kernel, che causa crash del sistema quando viene attivato il meccanismo di recupero memoria.
Alice Ryhl, l'ingegnere di Google responsabile del driver, ha spiegato che durante il forward-porting non aveva tenuto conto del commit fb56fdf8b9a2 che modificava il comportamento dei lock nei list_lru suddividendoli per scope cgroup. La conseguenza è un tentativo di acquisizione ricorsiva dello stesso lock, scenario classico che porta a situazioni di deadlock rilevate dal sistema di validazione del kernel.
La correzione è tecnicamente minimale ma significativa: rimuovere una singola chiamata spin_lock() dalla funzione rust_helper_spin_lock invocata in rust_shrink_free_page(). Questa modifica elimina la doppia acquisizione del lock che causava il warning "possible recursive locking detected" e i conseguenti crash del sistema. La patch è stata contrassegnata per il backporting anche sui kernel stabili della serie 6.19, indicando la gravità del problema riscontrato.
L'episodio rappresenta un momento delicato per l'adozione di Rust nel kernel Linux. Dopo il primo CVE assegnato a codice Rust poche settimane fa, questa nuova correzione alimenta il dibattito nella comunità sulle sfide dell'integrazione di un nuovo linguaggio in un codebase maturo. Tuttavia, va sottolineato che il bug non deriva da una carenza intrinseca di Rust come linguaggio, ma da un errore umano nel processo di porting quando sono state apportate modifiche sostanziali alla gestione dei lock nel sottosistema memory management.
Sul fronte hardware, l'aggiornamento char/misc include anche il supporto per Intel Nova Lake Point S nel driver MEI (Management Engine Interface). L'aggiunta riguarda esclusivamente un nuovo device ID senza modifiche alla logica del driver, motivo per cui è stata accettata nonostante la fase avanzata del ciclo di sviluppo 6.19. Nova Lake rappresenta l'evoluzione della strategia Intel per i processori destinati a sistemi embedded, point-of-sale e applicazioni industriali, segmenti dove la gestione remota tramite Management Engine riveste particolare importanza.
L'integrazione del device ID in questa fase consente ai sistemi basati su Nova Lake S di beneficiare immediatamente del supporto MEI quando la piattaforma arriverà sul mercato, evitando la necessità di patch out-of-tree o aggiornamenti successivi del kernel. Si tratta di una pratica consolidata per l'abilitazione di nuovo hardware Intel, che tipicamente fornisce gli identificativi dei dispositivi ai maintainer del kernel con diversi mesi di anticipo rispetto al lancio commerciale.
La release candidate Linux 6.19-rc5 è attesa nelle prossime ore, proseguendo il processo di stabilizzazione che dovrebbe portare al rilascio finale della versione 6.19 entro la fine di aprile 2025. Gli sviluppatori stanno concentrando gli sforzi sulla risoluzione di regressioni e bug critici, con particolare attenzione alle nuove funzionalità introdotte in questo ciclo come appunto il supporto Rust e le ottimizzazioni per i processori di ultima generazione.