CVE-2025-39784

In the Linux kernel, the following vulnerability has been resolved: PCI: Fix link speed calculation on retrain failure When pcie_failed_link_retrain() fails to retrain, it tries to revert to the previous link speed. However it calculates that speed from the Link Control 2 register without masking out non-speed bits first. PCIE_LNKCTL2_TLS2SPEED() converts such incorrect values to PCI_SPEED_UNKNOWN (0xff), which in turn causes a WARN splat in pcie_set_target_speed(): pci 0000:00:01.1: [1022:14ed] type 01 class 0x060400 PCIe Root Port pci 0000:00:01.1: broken device, retraining non-functional downstream link at 2.5GT/s pci 0000:00:01.1: retraining failed WARNING: CPU: 1 PID: 1 at drivers/pci/pcie/bwctrl.c:168 pcie_set_target_speed RDX: 0000000000000001 RSI: 00000000000000ff RDI: ffff9acd82efa000 pcie_failed_link_retrain pci_device_add pci_scan_single_device Mask out the non-speed bits in PCIE_LNKCTL2_TLS2SPEED() and PCIE_LNKCAP_SLS2SPEED() so they don't incorrectly return PCI_SPEED_UNKNOWN. [bhelgaas: commit log, add details from https://lore.kernel.org/r/1c92ef6bcb314ee6977839b46b393282e4f52e74.1750684771.git.lukas@wunner.de]
Configurations

Configuration 1 (hide)

cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*

History

19 Oct 2026, 21:10

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, la siguiente vulnerabilidad ha sido resuelta: PCI: Corrección del cálculo de la velocidad del enlace en caso de fallo de reentrenamiento Cuando pcie_failed_link_retrain() falla al reentrenar, intenta revertir a la velocidad de enlace anterior. Sin embargo, calcula esa velocidad desde el registro Link Control 2 sin enmascarar primero los bits que no son de velocidad. PCIE_LNKCTL2_TLS2SPEED() convierte dichos valores incorrectos a PCI_SPEED_UNKNOWN (0xff), lo que a su vez provoca un WARN splat en pcie_set_target_speed(): pci 0000:00:01.1: [1022:14ed] tipo 01 clase 0x060400 Puerto raíz PCIe pci 0000:00:01.1: dispositivo roto, reentrenando enlace descendente no funcional a 2.5GT/s pci 0000:00:01.1: reentrenamiento fallido WARNING: CPU: 1 PID: 1 en drivers/pci/pcie/bwctrl.c:168 pcie_set_target_speed RDX: 0000000000000001 RSI: 00000000000000ff RDI: ffff9acd82efa000 pcie_failed_link_retrain pci_device_add pci_scan_single_device Enmascarar los bits que no son de velocidad en PCIE_LNKCTL2_TLS2SPEED() y PCIE_LNKCAP_SLS2SPEED() para que no devuelvan incorrectamente PCI_SPEED_UNKNOWN. [bhelgaas: registro de commit, añadir detalles de https://lore.kernel.org/r/1c92ef6bcb314ee6977839b46b393282e4f52e74.1750684771.git.lukas@wunner.de]

Information

Published : 2025-09-11 17:15

Updated : 2026-11-05 22:17


NVD link : CVE-2025-39784

Mitre link : CVE-2025-39784

CVE.ORG link : CVE-2025-39784


JSON object : View

Products Affected

linux

  • linux_kernel