Description
In the Linux kernel, the following vulnerability has been resolved:

pds_core: fix deadlock between reset thread and remove

pci_reset_function() acquires device_lock before performing the reset.
pdsc_remove() is called by the PCI core with device_lock already held.
If pdsc_pci_reset_thread() is running when pdsc_remove() is called,
destroy_workqueue() will block waiting for the work to complete, while
the work is blocked waiting for device_lock - deadlock.

Use pci_try_reset_function() which uses pci_dev_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 pci_dev_get/put calls are also removed as they were unnecessary -
the driver-owned workqueue is destroyed in pdsc_remove(), guaranteeing
the work completes before remove returns. The PCI core holds its
reference to pci_dev throughout the entire unbind sequence.
Published: 2026-08-10
Score: n/a
EPSS: n/a
KEV: No
Impact: n/a
Action: n/a
AI Analysis

Impact

The vulnerability occurs when the PCI reset function acquires a device lock and a reclamation thread attempts to remove the device while the lock is held, causing a blocking deadlock. The deadlock prevents the system from completing the reset and removal operations, potentially leading to a kernel freeze or denial of service. The flaw is an internal race condition that requires privileged kernel context and is not exploitable from user space. The fix uses non‑blocking lock attempts and removes unnecessary reference counting to prevent the deadlock.

Affected Systems

The issue affects the Linux kernel code base; specific kernel version numbers are not listed, but the CPE indicates a broad impact across all Linux kernel releases that include the pds_core driver. The vendor is Linux Linux. Distributions should verify that their kernel source contains the patch corresponding to the referenced commits.

Risk and Exploitability

Given the absence of EPSS data and no listing in CISA KEV, the documented exploitation probability is unknown, but the nature of the flaw suggests a localized denial of service attack that would require privileged access to trigger. The CVSS score is not provided, so the overall risk is considered moderate, primarily as a system stability issue rather than a direct security breach.

Generated by OpenCVE AI on August 10, 2026 at 15:05 UTC.

Remediation

No vendor fix or workaround currently provided.

OpenCVE Recommended Actions

  • Install a kernel version that includes the patch for the pds_core deadlock fix.
  • If a patch is not yet available from your distribution, obtain the Linux kernel source, apply the commit that changes pci_reset_function to use pci_try_reset_function, and rebuild the kernel.
  • After applying the patch, verify that no other modules or drivers rely on the removed pci_dev_get/put calls and adjust their code accordingly if needed.

Generated by OpenCVE AI on August 10, 2026 at 15:05 UTC.

Tracking

Sign in to view the affected projects.

Advisories

No advisories yet.

History

Mon, 10 Aug 2026 15:30:00 +0000

Type Values Removed Values Added
Weaknesses CWE-424

Mon, 10 Aug 2026 12:30:00 +0000

Type Values Removed Values Added
Description In the Linux kernel, the following vulnerability has been resolved: pds_core: fix deadlock between reset thread and remove pci_reset_function() acquires device_lock before performing the reset. pdsc_remove() is called by the PCI core with device_lock already held. If pdsc_pci_reset_thread() is running when pdsc_remove() is called, destroy_workqueue() will block waiting for the work to complete, while the work is blocked waiting for device_lock - deadlock. Use pci_try_reset_function() which uses pci_dev_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 pci_dev_get/put calls are also removed as they were unnecessary - the driver-owned workqueue is destroyed in pdsc_remove(), guaranteeing the work completes before remove returns. The PCI core holds its reference to pci_dev throughout the entire unbind sequence.
Title pds_core: fix deadlock between reset thread and remove
First Time appeared Linux
Linux linux Kernel
CPEs cpe:2.3:o:linux:linux_kernel:*:*:*:*:*:*:*:*
Vendors & Products Linux
Linux linux Kernel
References

Subscriptions

Linux Linux Kernel
cve-icon MITRE

Status: PUBLISHED

Assigner: Linux

Published:

Updated: 2026-08-10T12:02:54.173Z

Reserved: 2026-07-30T09:28:09.382Z

Link: CVE-2026-68319

cve-icon Vulnrichment

No data.

cve-icon NVD

No data.

cve-icon Redhat

No data.

cve-icon OpenCVE Enrichment

Updated: 2026-08-10T15:15:04Z

Weaknesses
  • CWE-424

    Improper Protection of Alternate Path