CVE-2021-47421

In the Linux kernel, the following vulnerability has been resolved: drm/amdgpu: handle the case of pci_channel_io_frozen only in amdgpu_pci_resume In current code, when a PCI error state pci_channel_io_normal is detectd, it will report PCI_ERS_RESULT_CAN_RECOVER status to PCI driver, and PCI driver will continue the execution of PCI resume callback report_resume by pci_walk_bridge, and the callback will go into amdgpu_pci_resume finally, where write lock is releasd unconditionally without acquiring such lock first. In this case, a deadlock will happen when other threads start to acquire the read lock. To fix this, add a member in amdgpu_device strucutre to cache pci_channel_state, and only continue the execution in amdgpu_pci_resume when it's pci_channel_io_frozen.
Configurations

Configuration 1 (hide)

OR cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.15:rc1:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.15:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.15:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.15:rc4:*:*:*:*:*:*

History

25 Sep 2025, 16:09

Type Values Removed Values Added
CPE cpe:2.3:o:linux:linux_kernel:5.15:rc2:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.15:rc4:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.15:rc3:*:*:*:*:*:*
cpe:2.3:o:linux:linux_kernel:5.15:rc1:*:*:*:*:*:*
CVSS v2 : unknown
v3 : unknown
v2 : unknown
v3 : 5.5
First Time Linux
Linux linux Kernel
CWE CWE-667
References () https://git.kernel.org/stable/c/248b061689a40f4fed05252ee2c89f87cf26d7d8 - () https://git.kernel.org/stable/c/248b061689a40f4fed05252ee2c89f87cf26d7d8 - Patch
References () https://git.kernel.org/stable/c/72e9a1bf9b722628c28092e0c2cd8717edd201dc - () https://git.kernel.org/stable/c/72e9a1bf9b722628c28092e0c2cd8717edd201dc - Patch
References () https://git.kernel.org/stable/c/785cc093b6b5a93cc350421a55f3f1eda6585156 - () https://git.kernel.org/stable/c/785cc093b6b5a93cc350421a55f3f1eda6585156 - Patch

28 Aug 2025, 15:15

Type Values Removed Values Added
References
  • () https://git.kernel.org/stable/c/785cc093b6b5a93cc350421a55f3f1eda6585156 -

21 Nov 2024, 06:36

Type Values Removed Values Added
Summary
  • (es) En el kernel de Linux, se ha resuelto la siguiente vulnerabilidad: drm/amdgpu: maneja el caso de pci_channel_io_frozen solo en amdgpu_pci_resume. En el código actual, cuando se detecta un estado de error de PCI pci_channel_io_normal, informará el estado de PCI_ERS_RESULT_CAN_RECOVER al controlador PCI, y el controlador PCI continúe la ejecución de PCI resume callback report_resume mediante pci_walk_bridge, y la devolución de llamada finalmente irá a amdgpu_pci_resume, donde el bloqueo de escritura se libera incondicionalmente sin adquirir dicho bloqueo primero. En este caso, se producirá un punto muerto cuando otros subprocesos comiencen a adquirir el bloqueo de lectura. Para solucionar este problema, agregue un miembro en la estructura amdgpu_device para almacenar en caché pci_channel_state y solo continúe la ejecución en amdgpu_pci_resume cuando sea pci_channel_io_frozen.
References () https://git.kernel.org/stable/c/248b061689a40f4fed05252ee2c89f87cf26d7d8 - () https://git.kernel.org/stable/c/248b061689a40f4fed05252ee2c89f87cf26d7d8 -
References () https://git.kernel.org/stable/c/72e9a1bf9b722628c28092e0c2cd8717edd201dc - () https://git.kernel.org/stable/c/72e9a1bf9b722628c28092e0c2cd8717edd201dc -

21 May 2024, 15:15

Type Values Removed Values Added
New CVE

Information

Published : 2024-05-21 15:15

Updated : 2025-09-25 16:09


NVD link : CVE-2021-47421

Mitre link : CVE-2021-47421

CVE.ORG link : CVE-2021-47421


JSON object : View

Products Affected

linux

  • linux_kernel
CWE
CWE-667

Improper Locking