La tercera candidata a lanzamiento de la futura 6.18 llega sin estridencias y con ese pulso tranquilo que tanto agradece el ecosistema kernel. Según el propio Linus Torvalds, las cifras son comedidas y el ciclo avanza con normalidad; dicho de otro modo, Linux 6.18-rc3 pule, arregla y afina sin revoluciones, centrándose en correcciones repartidas por todo el árbol.
En su breve nota, Torvalds apunta que lo más voluminoso de esta tanda son las correcciones de SMB Direct, tanto del lado cliente como del servidor, con un buen puñado de parches de sintonía fina. El resto se reparte como de costumbre: aproximadamente la mitad toca a controladores (sumando también bindings de DeviceTree) y el resto son arreglos variopintos: XFS, redes, io_uring, DRM, Rust Binder y compañía. Si te interesa el detalle minucioso, hay un shortlog con decenas de cambios que repasamos por subsistemas a continuación.
- SMB Direct lidera 6.18-rc3 con mejoras de robustez en cliente y servidor.
- XFS, io_uring, redes y DRM reciben arreglos prácticos y bien repartidos.
- El mapa de versiones sitúa 6.17 como estable y 6.12/6.6 como LTS clave.
Novedades principales en Linux 6.18-rc3
En este corte semanal destaca el bloque de SMB Direct. Tanto el cliente como el servidor SMB ajustan créditos y colas para evitar regresiones y episodios de falta de recursos. Varias piezas del subsistema elevan el listón al asegurar que las estructuras de envío y vaciado (send/flush) reservan espacio suficiente y que los estados de desconexión despiertan a todos los hilos en espera de forma robusta.
Además, se cuelan correcciones en XFS para evitar bucles ocupados en el recolector de segmentos, cachear zonas abiertas en i_private, endurecer el manejo de opciones de montaje obsoletas y arreglar secciones delicadas del chequeo de enlaces y bloqueo. Los cambios de XFS de esta rc3 se centran en estabilidad y diagnósticos claros ante parámetros heredados.
La otra mitad del pastel es la habitual ensalada de controladores y plataformas: desde DRM/AMD y DRM/Xe hasta Rockchip, pasando por mlx5/mlx5e en red, PHYs Realtek y Micrel, UFS/Qualcomm, USB/xHCI DbC y mucho más. Es una rc3 “de fontanería”, en la que el valor está en la suma de pequeñas correcciones que evitan cuelgues, filtraciones de memoria o desajustes de tiempos.
SMB y SMB Direct: foco en robustez
El shortlog deja claro el esfuerzo en SMB Direct. Entre los puntos más relevantes:
- El cliente SMB y el servidor ajustan el espacio para Work Requests, evitando desbordes y asegurando que el drenaje de QP (ib_drain_qp) sea seguro. Se introducen y consumen contadores de lcréditos de envío en las rutas críticas.
- El servidor simplifica la gestión de listas hermanas en las rutas de envío (flush/send_done) y hace que la desconexión RDMA despierte a todos los hilos a la primera.
- Se refuerzan trazas en smb3_rw_credits, se reordenan includes para que las estructuras estén disponibles en los tracepoints y se corrigen tipos firmados en estructuras de créditos TCP.
En conjunto, los cambios de SMB Direct aspiran a que las transferencias RDMA bajo carga no sufran, se comporten predeciblemente y que los estados de error se gestionen sin dejar hilos colgados. Son ajustes que, aunque discretos, marcan la diferencia en entornos de alto rendimiento.
Sistemas de ficheros y almacenamiento
El apartado de filesystems y block incluye varias piezas destacables:
- XFS: evitar bucles ocupados, cachear zonas, prohibir __GFP_NOFAIL en la inicialización de contexto de FS, mejorar mensajes ante opciones obsoletas y corregir bloqueos y contadores de sectores.
- Btrfs: arreglos en ref-verify (IS_ERR vs NULL), liberar fs_info parcialmente inicializado ante fallos y una corrección en btrfs send para no duplicar operaciones rmdir con extrefs.
- EROFS: se endurece el manejo de extensiones codificadas maliciosas para evitar bucles y consolidar búsquedas lookback en subpáginas corruptas.
- Block layer: exigir alineamiento LBA cuando se usa Protection Information (PI) para mantener la integridad a bajo nivel.
También hay actividad en scsi/ufs/phy (bindings para nuevos compatibles), storvsc para preferir canales con afinidad al CPU que emite I/O y ajustes en controladores como qla4xxx. Son piezas que, juntas, refuerzan estabilidad y rendimiento de I/O en casos reales.
Redes: mlx5/mlx5e, bonding, HSR y más
En red la foto es variada, con foco en drivers de alto rendimiento y rincones poco transitados:
- mlx5/mlx5e: máscaras de registros PPHCR en PCAM, saltarse consultas si el dispositivo no soporta el registro y correcciones de RX cuando se generan skbs desde xdp_buff no lineales tanto en colas legacy como striding. Además, arreglos en IPsec sobre dispositivos MPV y devcom devolviendo NULL en fallos.
- Bonding: se actualiza el array de esclavos en modo broadcast y se corrigen posibles pérdidas o duplicidades en notificaciones a pares.
- HSR: se impide crear dispositivos con esclavos de otro netns, cerrando una vía de configuración inconsistente.
- Gro y gro_cells: se limpian hwtstamps en caminos de reutilización de skbs y se corrige un desequilibrio de locks en gro_cells_receive.
- Otros: virtio-net pone a cero campos hash no usados; hibmcge selecciona FIXED_PHY; dlink usa dev_kfree_skb_any; stmmac/rk arregla la función de selección de reloj; enetc corrige deadlocks del candado MDIO y un valor de TRUESIZE.
En conjunto, la pila de red recibe ese goteo de parches que evitan sorpresas bajo carga y cuidan el detalle en trayectorias de datos que, si fallan, se traducen en latencia, pérdidas o bloqueos.
Gráficos y pantalla: DRM/AMD, DRM/Xe, Rockchip y pánico con QR
El espacio DRM también se mueve, con cambios de seguridad y estabilidad:
- DRM/AMD Display: uso de GFP_NOWAIT en contexto de interrupción, aumento del máximo de enlaces y evitar accesos NULL en link→enc; además, una corrección de puntero nulo en rutas concretas.
- DRM/Xe: conservar flags de vma al recrear y dividir vmas para madvise y ocultar el autoreset de madvise tras un flag de VM_BIND, recortando aristas peligrosas.
- Rockchip: máscara SCLIN correcta para RK3228 en dw_hdmi.
- drm/panic: varias mejoras en el “modo pánico” con logo y QR: evitar solapes con el logo, asegurar márgenes verticales positivos, prevenir divisiones por cero cuando el ancho de pantalla es menor que el de la fuente y no cruzar páginas con píxeles 24-bit.
- Intel i915: evitar la fuga del objeto de pánico al asignar su estructura.
Incluso se toca panthor (GPU) para evitar un pánico del kernel al desmapear parcialmente una región VA, un bug molesto que se manifestaba en escenarios de memoria fragmentada. Son cambios que, aun discretos, evitan bloqueos en equipos reales.
Rust Binder y Binder clásico
Rust Binder sigue su maduración con varios retoques: se elimina un warning sobre mapeos huérfanos, se reenvía la notificación freeze_notif_done ante estados inesperados, se impide borrar un FreezeListener si hay duplicados pendientes y se reportan notificaciones solo cuando el proceso está realmente congelado. En paralelo, Binder clásico elimina una comprobación de “invalid inc weak” que ya no aporta. En el lado de toolchain, objtool reconoce una función Rust adicional como ‘noreturn’ y se limpia un aviso de clippy en Rust Binder.
io_uring, sqpoll y zc rx
En io_uring hay varios ajustes quirúrgicos: se corrige un mal uso de unlikely() en io_waitid_prep(), se ajusta una anotación __must_hold, se arregla el auto-commit de buffers para comandos uring_cmd multishot y se reevalúa la contabilidad de CPU de sqpoll dejando getrusage() para otro momento y actualizando el stime de forma más inteligente. Además, se añade entrada en MAINTAINERS para zcrx.
Arquitecturas y ACPI: RISC-V, arm64 y x86
Las arquitecturas son variadas y concretas:
- RISC-V: se define pgprot_dmacoherent() para dispositivos no coherentes, no se imprimen detalles de CPUs deshabilitadas en DT, se registran IRQs de IPI con nombres únicos, se define MAX_POSSIBLE_PHYSMEM_BITS para zsmalloc y se eliminan macros heredadas innecesarias. También se arreglan usos no inicializados en hwprobe y una clave inicializada tarde en el vDSO.
- arm64: en MTE se suprime un warning si la página ya estaba etiquetada en copy_highpage().
- x86: se ajusta el mensaje de RETBLEED para Intel, se arregla la comprobación de revisión Entrysign para Zen1/Naples y se limpia código muerto en mitigaciones.
- ACPI/propiedades: se corrige el orden de argumentos en acpi_node_get_property_reference() y se eliminan avisos cuando IOMMU_API está deshabilitado en RIMT.
También se corrigen piezas sueltas como pcibios_align_resource() en MIPS Malta para bloquear rangos IO, y recursos del teclado que impedían registrar i8042. Son cambios pequeñitos que evitan escenarios de bloqueo o inicializaciones frágiles.
Drivers y buses: SPI, serie, hwmon, GPIO, PCI/ASPM y otros
Este rc trae un buen ramillete de correcciones en controladores:
- SPI: dirmap de Airoha con errores ahora devuelve fallo, añade soporte dual/quad en exec_op, vuelve a modo no DMA si algo sale mal y arregla flashes con múltiples planos por LUN; NXP FSPI reconfigura el reloj cuando hace falta y limita frecuencia según fuente, además de añadir un retardo tras DLL lock; Intel SPI añade soporte para densidades de 128M y nuevas plataformas (Arrow Lake-H, Wildcat Lake).
- Serie y TTY: 8250_dw maneja errores al desasertar reset; 8250_mtk habilita el reloj de baudios y lo pasa a runtime PM; sc16is7xx limpia habilitados innecesarios; sh-sci corrige overrun de FIFO.
- PCI/ASPM: en plataformas con DeviceTree solo se habilitan L0s y L1, una decisión conservadora para evitar estados no validados.
- GPIO: en ACPI se suaviza la severidad de errores de debounce; gpio-regmap añade parámetro fixed_direction_output; módulos IDIO-16 definen
direcciones máximas válidas y direcciones fijas de las líneas. - Hwmon y pmbus: se arreglan fugas de referencia a nodos hijo y se actualizan coeficientes de modelos Max/ISL, además de detalles en el driver de ventilador GPD.
En paralelo, se añaden compatibles DT en SPI Cadence (ZynqMP/Versal-Net), Rockchip RK3506 y UFS QMP para Kaanapali, además de nuevos IDs en Option (Telit FN920C04 ECM, Quectel RG255C, UNISOC UIS7720). Todo ello, afina soporte para hardware recién llegado.
Memoria, slab y mm/damon
El área de memoria también recibe atención: en slab se evitan carreras con obj_exts y condiciones de confusión a NULL; mm/mremap contabiliza correctamente el mapeo antiguo tras un DONTUNMAP; THP impide consumir poison al dividir páginas enormes; DAMON limpia fugas de ops_filter y centraliza lógica de objetivos de cuota. En hugetlbfs se mueven aserciones de bloqueo tras retornos tempranos en huge_pmd_unshare().
Seguridad, tracing y Kconfig
Pequeñas piezas pero importantes:
- lib/crypto: Poly1305 restaura dependencias con !KMSAN, evitando configuraciones contradictorias.
- include/trace: se corrige un helper de inflight count en inicios fallidos; se añaden tracepoints SMB3 para créditos de lectura/escritura.
- Varios Kconfig: se mejora la ayuda de CONFIG_XFS_RT y se condicionan tests/stats a DEBUG_FS. Arreglos de dependencia en QCOMTEE y otras plataformas.
Son cambios discretos que evitan sustos durante la configuración del kernel y que facilitan diagnóstico cuando algo no arranca como debería. La suma de estas mejoras de calidad de vida repercute en menos tiempo perdido.
Este repaso a 6.18-rc3 deja claro el enfoque: solidez antes que fuegos artificiales. Del bloque de SMB Direct a los toques de XFS, pasando por la miríada de drivers y arreglos en redes, gráficos o memoria, todo apunta a un kernel más fiable. Sumado al mapa de versiones (con 6.17 como estable más reciente y 6.12/6.6 como LTS de referencia), tenemos una imagen coherente del momento actual: iteración constante, soporte prolongado donde importa y un camino de migración que cada equipo puede trazar con calma, sabiendo qué ramas pisan sobre seguro y cuáles están aún de estreno.
Artículo relacionado: Linux 6.18-rc2 llega en «la parte grande» con correcciones clave en gráficos, Rust y AMD Zen
Fuente: ubunlog

