CVE-2021-47421 Information

Description

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.

Reference

https://git.kernel.org/stable/c/72e9a1bf9b722628c28092e0c2cd8717edd201dc https://git.kernel.org/stable/c/248b061689a40f4fed05252ee2c89f87cf26d7d8

Share on: