In the Linux kernel, the following vulnerability has been resolved:
pds_core: fix deadlock between reset thread and remove
pciresetfunction() acquires devicelock before performing the reset. pdscremove() is called by the PCI core with devicelock already held. If pdscpciresetthread() is running when pdscremove() is called, destroyworkqueue() will block waiting for the work to complete, while the work is blocked waiting for device_lock - deadlock.
Use pcitryresetfunction() which uses pcidev_trylock() internally. This acquires both the device lock and the PCI config access lock without blocking - if either lock is contended, it returns -EAGAIN immediately. This avoids the deadlock while also ensuring proper config space access serialization during the reset.
The pcidevget/put calls are also removed as they were unnecessary - the driver-owned workqueue is destroyed in pdscremove(), guaranteeing the work completes before remove returns. The PCI core holds its reference to pcidev throughout the entire unbind sequence.
{
"osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/68xxx/CVE-2026-68319.json",
"cna_assigner": "Linux"
}