Linus Torvalds lanzó Linux 7.2 el pasado domingo en LKML:
Bueno, esta última semana del lanzamiento fue, una vez más, más grande de lo que me habría gustado, pero bueno, con todo esto de la «nueva normalidad», si retrasara los lanzamientos por ese motivo probablemente no habría lanzamiento nunca.
Hay un buen número de reverts bastante tardíos: destacan los reverts del scheduler de drm, pero también hay unos cuantos más por aquí. Puede que no sea bonito, pero es la forma correcta de lidiar con «oh, ese código no estaba listo y causó problemas». La gente volverá a intentarlo más adelante.
Pero aunque los reverts de drm destacan y se cuentan entre los parches más grandes de esta versión, hay un montón de pequeños arreglos por todas partes. Sobre todo en controladores, pero la red también se mantuvo bastante activa esta última semana. Y luego hay unos cuantos parches sueltos para archivos de arquitectura y el núcleo de perf.
Con esto, la merge window para 7.3 se abre mañana, y ya tengo 40 pull requests pendientes. Agradezco a toda la gente puntual. Ya sabéis quiénes sois,
Linus
Publicado a mediados de junio de 2026, Linux 7.1 nos trajo otra versión más de la implementación del sistema de archivos NTFS, varias mejoras de seguridad, una reescritura del núcleo del temporizador de alta resolución para mejorar el rendimiento, entre muchos otros cambios. También eliminó el soporte para subarquitecturas 486 heredadas como M486, M486SX y ELAN. Pero ahora que Linux 7.2 ya está disponible, es hora de repasar algunos cambios dignos de mención y analizar con más detalle las arquitecturas Arm, RISC-V y MIPS.
Cambios notables en Linux 7.2
- Planificación de tareas consciente de la caché para un rendimiento más rápido y menos fallos de caché: Linux 7.2 introduce un balanceo de carga de tareas consciente de la caché, con el objetivo de ubicar las tareas que comparten datos (es decir, los hilos de un mismo proceso) dentro del mismo dominio de caché de último nivel. Al mejorar la localidad de caché, el planificador puede reducir el rebote y los fallos de caché, mejorando en última instancia la eficiencia de acceso a los datos. Consulta este artículo de LWN para más detalles.
- Planificador de GPU «más justo»: los procesos que utilizan recursos de la tarjeta gráfica envían trabajos que se ejecutan dentro de la GPU, y un planificador de GPU decide qué trabajo se ejecutará a continuación. Hasta ahora, el algoritmo utilizado se basa en el principio «primero en entrar, primero en salir» (FIFO). El nuevo planificador de GPU «más justo» se inspira en el planificador de tareas CFS original de Linux y mejora la equidad y la planificación de los clientes interactivos cuando se ejecutan en paralelo con cargas pesadas de GPU. Los detalles se pueden encontrar en una entrada de blog en Igalia.
- USB4STREAM para transmitir datos con USB4: esta versión añade soporte para transmitir datos directamente a través de un cable, transfiriendo paquetes en bruto de un host a otro mediante cables USB4/Thunderbolt. El controlador expone dispositivos /dev/tbstreamX en cada lado del enlace, de modo que puede apoyarse en operaciones normales del sistema de archivos, como lectura y escritura. Esto puede resultar útil cuando no se dispone de herramientas de red o para aplicaciones existentes como dd y cat que no admiten sockets.
- Tabla de swap, fase IV: otra versión de Linux, otra mejora de la tabla de swap. La fase IV de este trabajo unifica la asignación y el cobro de la swap anónima y shmem en folios, ofrece una mejor sincronización y consolida la gestión de metadatos. Elimina el array y el mapa estáticos, lo que mejora el rendimiento y reduce la sobrecarga de metadatos estáticos a casi cero. Por ejemplo, montar un dispositivo de swap de 1 TB ahorra unos 512 MB de memoria. LWN tiene más detalles.
Cambios en Arm en Linux 7.2
La arquitectura Arm suele traer bastantes actualizaciones, y Linux 7.2 no es diferente. Estos son algunos de los aspectos más destacados:
- Allwinner
- ASoC: añadido un quirk de solo reproducción para el códec H616 en el controlador de Allwinner
- Cambios en controladores
- Cambios en el controlador SRAM para permitir que una región de SRAM sea «reclamada» por varios cambios. Cuando una región es «reclamada», se elimina o desconecta de la vista de la CPU. Esto es necesario en H6 y H616, que tienen una región alias aparentemente compartida entre el motor del códec de vídeo y el motor de visualización.
- Corrección menor para el controlador RSB
- Cambios en el device tree para Linux 7.2
- A83T incorpora un controlador de receptor MIPI CSI-2
- Overlays habilitados para las placas Pine64
- D1s / T113 y H616 incorporan un temporizador de alta velocidad
- Watchdog de T113s habilitado (para reinicio)
- H616 ahora cuenta con regiones SRAM adecuadas
- La familia A523 incorporó la interrupción de temporizador virtual EL2 y GPADC
- Corrección de IRQ de pinctrl en A523
- Nuevos dispositivos: N/A
- Rockchip
- ASoC y SoundWire: limpieza de las sustituciones de macros guard() no probadas y problemáticas en el controlador SAI de Rockchip
- Controlador PHY
- Añadido soporte para la PHY USB de Rockchip RK3528
- Actualizado el GRF de Rockchip para soporte de RK3568/RV1108
- IOMMU de Rockchip: desactivado el límite de tiempo de búsqueda de DTE
- Controlador de reloj
- Añadidos gate-clocks para las salidas i2s en Rockchip RK3588
Permitir compile-tests para todo el controlador de reloj
- Añadidos gate-clocks para las salidas i2s en Rockchip RK3588
- Device tree de Arm: limpiezas para la plataforma ChromeOS basada en RK3288
- Device tree de Arm64
- Watchdog en RK3528, receptor MIPI CSI-2 en RK3588
- Añadidos frl-enable-gpios a varias placas para soporte de HDMI 2.0.
- Un montón de correcciones y nuevos periféricos para varias placas.
- Soporte básico de cámara en RK3588: nuevos periféricos RK3588 vicap además de la incorporación de cámara a algunas placas, habilitación de USB en RK3528 y en algunas placas, soporte de RGA3 en RK3588. Añadida la interrupción de temporizador virtual EL2 que faltaba en RK3588.
- Algunos periféricos más añadidos para la próxima placa Khadas Edge 2L.
- Nuevos dispositivos: N/A
- Amlogic
- Controlador del controlador PCIe Meson
- Propagar el fallo de devm_add_action_or_reset() para corregir la ruta de error de probe
- Añadida la callback .remove() para desinicializar el host bridge y apagar la PHY
- Controlador de pin control
- Añadido el SoC Amlogic (meson) A9
- Corregido el fallo de salida en el controlador de pines Amlogic (meson) A4
- Interrupciones: añadido soporte para los SoC Amlogic A9 en el controlador de interrupciones meson-gpio
- Control térmico: añadido el sensor térmico Amlogic T7 junto con los datos de calibración térmica leídos mediante llamadas SMC
- Controlador de reloj: correcciones menores de bindings de DT para los controladores de reloj Amlogic T7
- Device tree de Arm: N/A
- Device tree de Arm64 para Linux 7.2
- Khadas VIM4 (SoC T7), novedades:
- Corrección del diseño de memoria
- Rango de registros GIC
- Corrección del nombre del modelo
- Soporte de PWM, eMMC, tarjeta SD y SDIO
- LED PWM
- Nodo de pinctrl I2C
- Khadas VIM1s, novedades
- Bluetooth
- LED PWM
- Tecla de encendido
- Tecla de función mediante SARADC
- RTC
- Mapa de teclas del mando a distancia
- Nodo Bluetooth para Phicomm N1
- Khadas VIM4 (SoC T7), novedades:
- Nuevo dispositivo: N/A
- Controlador del controlador PCIe Meson
- Samsung
- Alimentación: nuevo controlador para el cargador de batería en los PMIC Samsung S2M
- LED y MFD
- Añadido soporte para el PMIC Samsung S2MU005, que incluye controladores de cargador, MUIC, flash y LED RGB
- Samsung Core: máscara DMA coherente a cero para el dispositivo PMIC de Samsung con el fin de suprimir los mensajes innecesarios de «DMA mask not set»
- Controladores SoC
- Añadido soporte para la unidad de gestión térmica de Samsung
- Mejorado el controlador de firmware ACPM (Alive Clock and Power Manager) de Samsung Exynos (y Google GS101):
- Algunas mejoras de código.
- Añadido soporte para el protocolo utilizado para comunicarse con la unidad de gestión térmica (TMU). Esto permitirá implementar el controlador térmico para los SoC más recientes Samsung Exynos y Google GS101.
- Controlador de reloj
- Exynos850: marcar los relojes I3C de APM (Active Power Management) como críticos, porque son necesarios para la comunicación con el firmware pero hasta ahora no tenemos ningún consumidor de ellos.
- Exynos990: corregidos los padres de algunos muxes y propagadas las solicitudes de frecuencia hacia arriba.
- Cambios mach/soc: eliminado el uso de números de GPIO sin procesar de la placa crag6410 basada en S3C6410.
- Cambios DTS de Arm: N/A
- Cambios DTS de Samsung para Arm64 en Linux 7.2
- Exynos850: implementado un apagado correcto para apagar completamente la placa y reducir la corriente consumida
- ExynosAutov920: añadido almacenamiento UFS
- Cambios de defconfig: N/A
- Nuevos dispositivos: N/A
- Qualcomm
- Nuevo SoC: Qualcomm Dragonwing IPQ9650, un SoC de redes inalámbricas con cuatro núcleos Cortex-A55 y un núcleo Cortex-A78
- SPMI: soporte para el árbitro de PMIC v8.5 de Qualcomm y Hawi, junto con una limpieza de la documentación del kernel y un uso de kzalloc flex
- PCI: evitar SBR para los WiFi Qualcomm WCN6855/WCN7850 y los módems SDX62/SDX65, que parecen no soportarlo
- Controlador del controlador PCIe
- Añadido el compatible del SoC Eliza en el binding de DT
- Establecer OPP máxima durante la reanudación para que los accesos a los registros DBI no fallen con errores NoC
- Añadida pci_host_common_d3cold_possible() para determinar si los dispositivos posteriores ya están en D3hot y si los dispositivos con wakeup habilitado son capaces de generar PME desde D3cold
- Añadida la callback .get_ltssm() para obtener el estado LTSSM sin DBI, ya que DBI puede ser inaccesible después de PME_Turn_Off
- Apagar la PHY mediante PARF_PHY_CTRL antes de desactivar rieles/relojes para evitar fugas de energía
- Decidir si la suspensión debe poner el enlace en L2 y apagarlo usando pci_host_common_d3cold_possible() en lugar de comprobar si ASPM L1 está habilitado
- Añadido soporte qcom D3cold para eliminar las votaciones de ancho de banda de interconnect y OPP
- Gestionar configuraciones DT mixtas PERST#/PHY no soportadas, p. ej., PHY en el nodo RP mientras PERST# está en el nodo RC, pero advertir sobre el problema de DT
- Programar T_POWER_ON basándose en la propiedad DT «t-power-on-us» en caso de que el hardware anuncie valores incorrectos
- Desactivar ASPM L0s para SA8775P
- Inicializar el bloqueo MSI de DWC para hosts ECAM gestionados por firmware, que no usan la ruta dw_pcie_host_init() que inicializa el bloqueo
- Controlador PHY
- Añadidos soporte de PHY QMP Qualcomm Eliza, eUSB2 Synopsys Eliza, PHY PCIe Eliza, PHY UFS QMP Nord y soporte USB3 PHY IPQ5210
- Actualizado el soporte de QSERDES COM v2 de Qualcomm
- hwspinlock: evitar miembros de struct sin inicializar en el controlador hwspinlock de Qualcomm
- remoteproc
- Añadidos los bindings ADSP/CDSP de Qualcomm Hawi, junto con los bindings RPM de Shikra y soporte PAS para CDSP, LPAICP y MPSS.
- Corregida una fuga de minidump de Qualcomm, limpiado el manejo de reset de PAS y WCSS
- Nomenclatura de Qualcomm visible para el usuario más coherente.
- Controlador pinctrl
- Añadidos TLMM de Qualcomm Nord, TLMM de Shikra, LPASS LPI de SM6350 y TLMM de IPQ9650
- Actualizaciones/mejoras
- Soporte de GPIO Qualcomm PM8010 en el PM8010
- Soporte de EGPIO Qualcomm SM6115 en el SM6115
- Cambio de los controladores LPASS LPI de Qualcomm a runtime PM para la gestión de energía
- Limpieza un poco del negocio de Kconfig de Qualcomm para incluir los controladores necesarios para cada subarquitectura
- SMMUv2:
- Actualizaciones de bindings de device tree para los SoC Qualcomm Hawi, Nord y Shikra
- Restringir los relojes que se pueden especificar para los SoC Qualcomm recientes
- Corregida la cadena compatible rota para la configuración del prefetcher de Qualcomm y añadida una nueva entrada para el MDSS Glymur
- Garantizar que la SMMU se enciende al escribir el context bank para el cliente Adreno
- Actualizaciones de controladores
- Habilitado QSEECOM y, con ello, el acceso a las variables UEFI en el portátil Surface Pro 12in.
- Refactorizado el código auxiliar Geni Serial-Engine para permitir que los controladores de motor serie (como I2C) funcionen en plataformas donde la energía y el rendimiento se controlan mediante un servidor SCMI en lugar de recursos individuales en Linux.
- Ampliado el controlador LLCC para soportar la lectura de sus datos desde una tabla de caché de sistema (SCT) en memoria en lugar de estar codificada por plataforma en el controlador. También añadido soporte para la plataforma Eliza.
- Añadido soporte para la plataforma Hawi a pd-mapper.
- Cambiado el controlador SMEM para rastrear particiones usando xarray y manejar mejor el creciente número de hosts.
- Ampliado el controlador socinfo con información sobre los SoC Nord, SM7750, IPQ9650 y Shikra, así como los PMIC PMAU0102, PMC1020H, PMIV0102 y PMIV0104.
- Definido UBWC 3.1 y añadidos un par de helpers convenientes en la librería UBWC para MDSS y Adreno.
- Corregida una fuga de memoria en el mecanismo de descarga de firmware WCNSS.
- Actualizaciones de sonido: refinamientos del soporte de offloading de audio USB de Qualcomm
- Ethernet: at803x: gestión de relojes Rx y Tx para la PHY IPQ5018
- WiFi
- ath9k: mejoras en la interfaz GPIO
- ath12k
- Soporte WDS
- Reemplazada la asignación dinámica de memoria en la ruta WMI Rx
- Soporte de throttling térmico/dispositivo de refrigeración
- Detección de interferencia incumbente en 6 GHz
- Canal 177 en 5 GHz
- Regulador: nuevo soporte de dispositivos para Qualcomm Nord RPMH, PM8109, PM8150 y PMAU0102
- Controlador I2C: añadidos compatibles CCI Glymur y Shikra de Qualcomm
- Controlador de reloj
- Añadidos controladores de reloj global, TCSR y RPMh para el SoC móvil Qualcomm Hawi
- Añadido el reloj GX para Qualcomm Milos, y garantizado que el controlador de reloj de cámara vote por el ancho de banda de interconnect para poder activar TOP_GDSC.
- Añadidos controladores de reloj de cámara y vídeo para Qualcomm Hamoa y Purwa. Reducido el max_register del controlador de reloj de pantalla para evitar que regmap intente volcar registros protegidos.
- Añadido el controlador de reloj global para el SoC Qualcomm IPQ9650 y añadido soporte IPQ5332 al controlador cmnpll.
- Añadido el reset de PHY USB2 que faltaba al NegCC de Qualcomm Nord.
- Reelaborada la implementación del reloj mux de PHY de Qualcomm según sea necesario para el próximo soporte de USB4.
- CPUFreq: añadido soporte de escalado cpufreq para el SoC Qualcomm Shikra
- Actualizaciones de device tree de Arm64
- Descrito el bloque IPA en la plataforma Agatti y los niveles OPP que faltaban para el codificador/decodificador de vídeo.
- Para Eliza, descritos los Serial Engines QUP, GPI DMA, SDHCI, LLCC, IMEM, criptografía QCE, remoteproc ADSP y nodos USB. Habilitados el panel DSI, DisplayPort, USB y soporte ADSP en el MTP Eliza.
- En Glymur, habilitados los remoteprocs ADSP y CDSP, FastRPC, hardware criptográfico, dispositivos de refrigeración CPUfreq y nodos coresight. Habilitados los remoteprocs y el sensor LID en el CRD Glymur.
- Descrito el controlador CAN-FD que se encuentra en el EVK Hamoa. Corregidas las tablas OPP del controlador DisplayPort.
- Descrito el watchdog en IPQ5210 e IPQ9650.
- Descritos el controlador USB y las PHY para la plataforma Kaanapali y habilitado el soporte USB básico en los dispositivos MTP y QRD.
- Habilitado el segundo subsistema de pantalla en Lemans y utilizado para habilitar salidas DisplayPort adicionales en la placa Lemans Ride, y el mezzanine IFP para el EVK. También habilitado el expansor GPIO en el EVK Lemans para sacar las señales CAN.
- Añadidos nodos de hardware criptográfico y qfprom en Milos. Reducido el tamaño de la memoria compartida remotefs para evitar que las comprobaciones de cordura del firmware del módem rechacen la región. Habilitado el vibrador en FairPhone FP6.
- Añadido soporte FastRPC GPSDP en Monaco, y descrito el controlador Bluetooth en la placa Arduino VENTUNO Q.
- Introducido un overlay EL2 para el IoT EVK Purwa.
- Habilitado el controlador de bus CAN en QCS6490 RB3gen2 y añadido un nodo remotefs.
- Habilitado FastRPC en el ADSP SC8280XP.
- Corregidos los ids de canal FastRPC ADSP de SDM630 y SDM660. También añadida la región de memoria ADSP en SDM630.
- En dispositivos SDM845, habilitado NFC en Google Pixel 3, OnePlus 6, OnePlus 6T y SHIFT SHIFT6mq. Habilitado el flash de cámara en dispositivos LG. Reelaborada la descripción del framebuffer en Samsung, SHIFT y dispositivos Xiaomi. Habilitado el flash de cámara en dispositivos LG. Corregidos Bluetooth y WiFi en dispositivos LG y Xiaomi.
- Habilitados MDSS y el panel de pantalla en Xiaomi Mi A3.
- Escaladas las votaciones de reloj L3 y DDR según la selección de CPUfreq.
- Habilitados el controlador de reloj de cámara, los dispositivos de refrigeración cpufreq y corregido el reloj de referencia DSI1 en SM8750.
- En la plataforma Talos, descritos el soporte QSPI, los servicios GPR y de audio, y habilitado el sonido en el objetivo EVK. Habilitado QSPI y descrito el SPINOR en este bus, en el QCS615 Ride.
- Descritos el power-domain y el reloj iface para el Inline Crypto Engine (ICE) en varias plataformas.
- Corregido el nombre de la fuente de alimentación RFA de Bluetooth en una variedad de dispositivos.
- Actualizaciones de device tree de Arm32: N/A
- Actualizaciones de defconfig Arm64: N/A
- Nuevos dispositivos
- Placa RDP488 basada en la plataforma de router/gateway IPQ9650
- Añadido soporte para el Motorola Edge 30 y el Nothing Phone.
- MediaTek
- PCI/Virtualización: evitar FLR para el WiFi MediaTek MT7925, donde FLR falla después de que una VM termine de forma no limpia
- Controlador del controlador PCIe
- Usar FIELD_PREP() para corregir la precedencia de operadores incorrecta en PCIE_FTS_NUM_L0
- Corregida la fuga del dominio IRQ cuando el puerto no logra habilitarse
- Usar la dirección física real para la dirección del mensaje MSI en lugar de virt_to_phys()
- Añadido EcoNet EN7528 al binding de DT
- Controlador PCIe Gen3
- Desactivar PCIE_PHY_RSTB para que REFCLK sea estable durante al menos 100 ms (PCIE_T_PVPERL_MS) antes de desactivar PERST#
- Añadido .shutdown() para activar PERST# antes de apagar el dispositivo
- Apagado completo del dispositivo al retirarlo, incluida la activación de PERST#, al eliminar el controlador
- Corregido un mensaje de error «failed to create pwrctrl devices» que se omitía inadvertidamente
- MFD: añadido soporte para el PMIC MT6365 y documentados los suministros del regulador para la variante MT6359
- WiFi: mt76
- Añadido soporte para MT7927
- mt792x: detección de transporte USB roto
- mt7921: mejoras regulatorias
- Regulador: completada y corregida la descripción del MediaTek MT6359
- Actualizaciones del controlador SoC: añade compatibilidad de ID de subsistema en CMDQ de MediaTek, allanando el camino para añadir soporte al SoC MT8196, y corrige las máscaras de enrutamiento Multimedia System (MMSYS) para el SoC MT8167.
- Actualizaciones Arm32: añade soporte para el nodo Timer ARMv7 en el SoC MT6589 y realiza un par de correcciones dtbs_check en MT7623 y en el devicetree de MT8135
- Actualizaciones de device tree Arm64 para Linux 7.2
- Añade soporte para el Crypto Accelerator del SoC MT7981
- Habilita gpio-keys y leds encontrados en el router Xiaomi AX3000T basado en MT7981b
- Añade nuevas variantes de MT7988 Banana Pi BPi-R4 Pro
- Algunas limpiezas menores para todas las placas BPi-R4 Pro
- Añade un devicetree MediaTek MT6365 y lo utiliza en todas las placas soportadas relevantes en lugar de MT6359, donde sea necesario (el PMIC MT6365 es una variante totalmente compatible del PMIC MT6359, pero aún no se llama MT6359).
- Añade fuentes de alimentación correctas para CPUs y dispositivos en varios Chromebooks MediaTek y placas Genio AIoT, incluyendo:
- Chromebooks MT8186 Corsola
- Chromebooks MT8192 Asurada
- Chromebooks MT8195 Cherry
- Placas basadas en MT8390 Genio
- Placas basadas en MT8395 Genio
- Añade soporte de salida HDMI TX para placas Ezurio Tungsten 510/700.
- Actualizaciones de defconfig: N/A
- Nuevos dispositivos: N/A
- Otras nuevas plataformas de hardware y SoC Arm
- Apple: t8122 (M3), SoC de portátil de la generación 2023
- ASPEED
- Controlador de gestión de placa base (BMC) AST27xx de 64 bits (Cortex-A35)
- Soporte de BMC AST26xx para dos placas de servidor
- Cortina Systems: dos cajas NAS que usan el antiguo SoC Gemini basado en un núcleo de CPU ARMv4 FA526
- NXP: 18 placas industriales embebidas con SoC NXP i.MX6/8/9 y LX2160A de Variscite, Toradex y SolidRun
- Renesas: R-Car M3Le (R8A779MD), una variante del SoC automotriz R-Car M3-N (R8A77965).
- Texas Instruments: una placa portadora y un SoM con TI K3 AM62x, además de nuevos overlays para SoM más antiguos
- ZTE: ZX297520v3, SoC inalámbrico antiguo de gama baja (núcleo Cortex-A53). Esto devuelve la familia de chips ZX que se eliminó en 2021 después de que el soporte para los chips originales ZX296702 y ZX296718 nunca se completara.
- Cambios específicos de Raspberry Pi
- Eliminado el temporizador virtual EL2 no funcional en BCM2712
- Raspberry Pi RP1: net: macb: añadida la callback de timeout de TX stall para recuperarse de una escritura TSTART perdida
- Firmware: cambiada la dependencia a ARCH_BCM2835 y COMPILE_TEST. El controlador de firmware de Raspberry Pi no tiene dependencias de compilación con el controlador de mailbox BCM2835. Es solo una dependencia indirecta en tiempo de ejecución: el controlador solo funciona en una Raspberry Pi.
Actualizaciones de RISC-V en Linux 7.2
La actividad de desarrollo sigue siendo sólida para la arquitectura RISC-V
- Evitar que get_free_mem_region() devuelva regiones que no se pueden mapear en ciertas circunstancias definiendo DIRECT_MAP_PHYSMEM_END para RISC-V
- Corregido un problema de arranque temprano con kexec_file cuando la cantidad de memoria física instalada en el sistema supera el tamaño del mapa directo, lo cual es posible en ciertos modos de memoria virtual de RISC-V
- Ejecutar incondicionalmente sfence.vma en el nuevo código de gestión de áreas vmalloc en el manejador de fallos de página, ya que incluso la presencia de Svvptc no garantiza que la CPU no vuelva a fallar inmediatamente después de que finalice el manejador de excepciones y posteriormente se bloquee
- Corregido ftrace_graph_ret_addr() para usar el puntero de tarea correcto (alineándose con lo que hacen otras arquitecturas)
- Corregido el código de comprobación de rendimiento de accesos desalineados en los casos en que el rendimiento se especifica en la línea de comandos del kernel y cuando las CPUs se han desconectado y vuelto a conectar
- Eliminado un desplazamiento de dirección falso en la versión sin frame pointer de walk_stackframe(), alineándola con el código basado en frame pointer
- Corregido un problema de kfence en RISC-V que causaba avisos falsos de use-after-free
- Añadido ARCH_HAS_CC_CAN_LINK para RISC-V, que necesita flags de línea de comandos del compilador diferentes a las de otras arquitecturas
- Implementado _THIS_IP_ usando ensamblador específico de RISC-V, que parece menos frágil (desde el punto de vista del compilador) que tomar la dirección de una etiqueta
- Reducida la sobrecarga de arranque del kernel definiendo HAVE_BUILDTIME_MCOUNT_SORT, ya que arch/riscv cumple todos los requisitos
- Parchear el vDSO CFI durante el procesamiento de alternatives, no solo el vDSO estándar
- Corregida una posible fuga de memoria en el código de cacheinfo
- Limpiado kernel/setup.c:add_resource() para transmitir el valor de retorno de insert_resource() y mejorar la visualización de los rangos de recursos
- Limpieza de nuestro purgatory.[ch] alineando nuestro prototipo purgatory() con el de arch/x86, y limpiando verify_sha256_digest()
- Limpieza de cpu_is_stopped() para alinear su función un poco más con su nombre
- Reemplazado el uso de funciones de cadena sin límite en get_early_cmdline() y el código ptdump con strscpy()
- Reemplazado sprintf() con sysfs_emit() en cpu_show_ghostwrite() para una comprobación de límites más segura
- Estandarizada la forma en que se especifican los flags de salida del compilador en los kselftests de RISC-V, alineándolos con lo que hacen otras arquitecturas
- Usada la macro cmp_int() genérica de Linux en lugar de una macro «cmp_3way()» escrita a mano en kernel/module-sections.c
- Provocar un panic al principio del arranque si no se pueden asignar las pilas del manejador de IRQ, en lugar de fingir que se continúa con normalidad
- Añadido soporte para los SoC Eswin en el defconfig de RISC-V
- Eliminados algunos condicionales innecesarios en sbi_hsm_hart_{start,stop}()
- Limpiadas algunas infelicidades de Kconfig encontradas por Kconfirm
- Reemplazada una versión escrita a mano de min() en el código kexec_elf con la función min() estándar
- Elevado el NR_CPUS por defecto para 64BIT a 256: SpacemiT ya ha producido un servidor RISC-V RVA23 de 80 núcleos y, yendo más atrás, el Sophgo Pisces basado en SG2042 de doble socket tiene 128 núcleos. Por lo tanto, un NR_CPUS de 64 no es suficiente.
- Alibaba T-Head
- PWM: th1520: eliminado el requisito de mul_u64_u64_div_u64_roundup
- Device tree: habilitado wifi en dos placas TH1520: BeagleV Ahead y Lichee Pi 4a.
- Microchip
- Controladores SoC: una única adición de compatible de dt-binding para el irqmux en pic64gx
- Device tree: esta vez no hay nada más que parches para las placas Microchip. Todo esto son correcciones y limpiezas de baja prioridad, centradas en las placas pic64gx y beaglev-fire. No se ha añadido ningún soporte nuevo
- SpacemiT
- K1: controlador SPI, controlador I2C habilitado, sensor térmico
- K3: soporte de PHY USB2, controlador ASoC
- Controlador de reloj
- Cambiado el reloj padre de PCIe de SpacemiT
- Corregido el desplazamiento del registro de reloj PCIe de SpacemiT
- Añadido el reloj DBI de PCIe de SpacemiT
- MFD: SpacemiT P1: añadida una celda de reinicio para el chip SpacemiT P1
- Cambios en el device tree
- SoC K3
- Añadida la extensión Ziccrse
- Añadido soporte PWM
- Añadido soporte PDMA
- Añadido soporte USB 2.0
- Corregida la alimentación I/O de pinctrl
- SoC K1
- Añadido soporte de tarjeta Micro SD
- Añadida la velocidad de baudios a la consola
- Añadido soporte SPI
- Habilitado el sensor térmico
- Corregido el reloj de 32K
- Placas K1
- Milk-V Jupiter: habilitado eMMC
- Muse Pi Pro: habilitados EEPROM/PCIe/QSPI/USB
- OrangePi R2S: habilitados PMIC/USB3
- OrangePi RV2: habilitados eMMC/I2C/PCIe/PMIC/QSPI/USB
- SoC K3
- Nuevas placas: placas CoM260-IFX basadas en K1 y DeepComputing FML13V05
- Sophgo
- Actualizaciones de device tree para Linux 7.2
- CV18xx: añadidos bindings para la placa Milk-V «Duo S».
- SG2042
- La dirección de unidad de la CPU usaba incorrectamente números decimales, especialmente para aquellos nodos con valor >= 10. Ahora corregida para usar hexadecimal.
- El controlador MSI en realidad solo soporta 16 interrupciones; corregido para que coincida con la situación real.
- Los RC de PCIe son coherentes con la caché de la CPU. Marcado para los nodos RC.
- SG2044: igual que SG2042, usar hex para la dirección de unidad de la CPU.
- Actualizaciones de device tree para Linux 7.2
- StarFive
- Interrupciones: renombrado y reelaborado el controlador de interrupciones StarFive JH8100 para el nuevo SoC JHB100, ya que JH8100 se descontinuó antes de la producción.
- ccache de SiFive: añadido el StarFive JH7110 a la lista de dispositivos que necesitan las operaciones de caché no estándar, porque la GPU parece ser DMA no coherente a diferencia de otros periféricos.
- Fuente de reloj: añadida la cadena compatible de bindings DT del clint JHB100 de StarFive
- Añadido soporte SGMII GMAC a JHB100
Changelog de MIPS
Como es habitual en los últimos tiempos, el changelog de MIPS fue realmente corto:
- Usar nodos de software para el código GPIO
- Limpiezas y correcciones
Aquí hay una lista de algunas de las correcciones:
- mips: seleccionar las interfaces gpiolib heredadas donde se usen
- MIPS: lib: eliminar «.hidden» para símbolos locales
- MIPS: VDSO: evitar incluir .got en el segmento dinámico
- MIPS: smp: informar de la CPU moribunda a RCU en stop_this_cpu()
- MIPS: kernel: proc: eliminar llaves innecesarias en show_cpuinfo()
- MIPS: kernel: proc: usar llamadas seq_putc() en show_cpuinfo()
- mips: sched: corregida la corrupción de memoria CPUMASK_OFFSTACK
- MIPS: mm: corregida la escritura fuera de límites en maar_res_walk()
- MIPS: ath79: reducir ARCH_DMA_MINALIGN
- mips: dts: ar9132: corregido el nombre del nodo wdt
- mips: eliminar las referencias restantes de defconfig al controlador pktcdvd
- MIPS: mm: eliminar el comentario que se refiere al CONFIG_MIPS_CMP eliminado
- MIPS: alchemy: db1300: cambiar a propiedades de dispositivo estáticas
- MIPS: alchemy: gpr: cambiar a propiedades de dispositivo estáticas
- MIPS: alchemy: db1000: usar nodos adjuntos a chips GPIO en propiedades
- MIPS: alchemy: mtx1: adjuntar nodos de software a chips GPIO
- MIPS: alchemy: proporcionar prototipos de funciones visibles a los archivos de placa
- MIPS: alchemy: platform: añadir include que faltaba
- MIPS: ip22-gio: no exportar la función de liberación del dispositivo
- MIPS: ip22-gio: cambiar al dispositivo raíz dinámico
Consulta el changelog completo de Linux 7.2 para más detalles. Se generó solo con comentarios usando el comando git log v7.1..v7.2 --stat. También puedes leer el changelog en Kernelnewbies para una lista de cambios más larga y amplia.
Traducido del artículo en inglés «Linux 7.2 release – Main changes, Arm, RISC_V, amd MIPS architecture» de Jean-Luc Aufranc (CNXSoft).
Publicaciones traducidas automáticamente
