Linux 7.4, il driver NVMe per i Mac M4 spunta nella pull request block di Axboe
Il supporto al controller NVMe ANS2 dei chip Apple M4 (t8132) compare tra le novità che Jens Axboe ha proposto a Linus Torvalds per la merge window di Linux 7.4, nella pull request «Block updates for 7.4-rc» inviata il 21 ottobre 2026 sulla lista linux-block. Chi usa Linux su un Mac con M4 potrebbe dunque trovare nel kernel il driver per il proprio controller di storage; per tutti gli altri la pull request porta modifiche a NVMe, ai dischi a zone e a ublk. Si tratta di una proposta di integrazione: la fonte non indica una data di rilascio per Linux 7.4.
Il driver per i Mac con chip M4
Il supporto passa dal ramo NVMe. Gli interventi indicati sono due, entrambi di Yureka Lilian: la patch «nvme: apple: add t8132 (M4) ANS2 NVMe support» e l’aggiunta della compatible apple,t8132-nvme-ans2 ai dt-bindings. Il testo non precisa quali modelli di Mac siano coinvolti.
NVMe: multipath, TCP e target
Sul lato host il lavoro più visibile riguarda multipath e trasporto TCP:
nvme-multipathespone in sysfs gli attributipath_state,iopoliciesefail_on_ctrl_loss, con correzioni alla valutazione dello stato dei percorsi (failfast e ANA);- per i sottosistemi di discovery il multipath riporta l’iopolicy «none»;
nvme-tcpparallelizza l’allocazione e l’avvio delle code di I/O e usa il network namespace del chiamante.
Il target (nvmet) riceve la correzione di un use-after-free nel passthru, con relativo rework, e quelle di use-after-free nel preempt delle reservation. Si aggiunge il supporto al keep alive basato sul traffico, configurabile da configfs.
Autenticazione NVMe e segreti in sysfs
Il target nvmet richiede l’autenticazione prima del property set, rifiuta i payload AUTH_SEND troppo piccoli e serializza l’accesso allo stato DH-HMAC-CHAP per evitare un use-after-free. Lato host è presente la patch «nvme-auth: fail when the controller does not authenticate itself», di cui la pull request riporta solo il titolo. Gli attributi sysfs dei segreti DH-HMAC-CHAP diventano leggibili solo da root.
I/O sui block device e scritture atomiche
Tal Zussman firma il rework dell’I/O bufferizzato e diretto sui block device. Secondo la pull request:
- si usa
iomap_dirty_folio; i_rwsemviene preso nel fallback della scrittura diretta e nella splice read;- il percorso di lettura bufferizzata rispetta
IOCB_NOWAIT; - le scritture atomiche non ripiegano più sull’I/O bufferizzato.
Per le scritture atomiche la dimensione è limitata dai vincoli del buffer PI e l’operazione fallisce se il pin delle pagine risulta parziale. Le scritture dirette O_DSYNC saltano il flush ridondante e REQ_FUA è usato solo se il dispositivo lo supporta.
Zone, ublk e controllo dell’I/O
Damien Le Moal rivede la rivalidazione delle zone di grandi dimensioni: la procedura viene serializzata, gli zone write plug vengono scartati e l’operazione ritentata quando cambia la capacità. Le condizioni read-only e offline si propagano ai plug e le zone offline o read-only sono trattate come «dead».
Per ublk ci sono interventi di robustezza sui round FETCH annullati e sul passaggio a live con comandi io annullati; viene eliminato lo scheduler I/O predefinito e si aggiungono selftest. blk-iocost guadagna il costo dei flush, con il parametro flushiops del modello, e conta le zone append come scritture.
Altre modifiche e conflitti di merge
- gli attributi GPT sono memorizzati come valore grezzo;
- viene rimosso il supporto allo scambio dei file descriptor dei dispositivi loop;
- il driver
swimriceve una revisione profonda e il floppy alcune correzioni, tramite un pull da Denis Efremov.
Axboe avverte infine che il merge darà conflitti in block/bio.c e block/blk-zoned.c, e allega la risoluzione che dice di avere in linux-next da tempo.


