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.
git.kernel.org/linus/248b061689a40f4fed05252ee2c89f87cf26d7d8 (5.15-rc5)
git.kernel.org/stable/c/248b061689a40f4fed05252ee2c89f87cf26d7d8
git.kernel.org/stable/c/72e9a1bf9b722628c28092e0c2cd8717edd201dc
launchpad.net/bugs/cve/CVE-2021-47421
nvd.nist.gov/vuln/detail/CVE-2021-47421
security-tracker.debian.org/tracker/CVE-2021-47421
www.cve.org/CVERecord?id=CVE-2021-47421