# CVE-2025-68310: linux: In the Linux kernel, the following vulnerability has been resolved:  s390/pci: Avoid deadlock between PCI error recov...

CVE-2025-68310 is fixed in 11 products on 1 platform, first by DEBIAN-CVE-2025-68310, released December 16, 2025. It is not reported as exploited. Patch Radar priority: Routine.

- Web page: https://patchblox.com/security/cve/CVE-2025-68310
- Priority: Routine
- CVSS: n/a
- EPSS: 0.0019
- CISA KEV: not listed
- Exploited (vendor report): no
- Publicly disclosed: no
- Published: Dec 16, 2025

## Description

In the Linux kernel, the following vulnerability has been resolved:  s390/pci: Avoid deadlock between PCI error recovery and mlx5 crdump  Do not block PCI config accesses through pci_cfg_access_lock() when executing the s390 variant of PCI error recovery: Acquire just device_lock() instead of pci_dev_lock() as powerpc's EEH and generig PCI AER processing do.  During error recovery testing a pair of tasks was reported to be hung:  mlx5_core 0000:00:00.1: mlx5_health_try_recover:338:(pid 5553): health recovery flow aborted, PCI reads still not working INFO: task kmcheck:72 blocked for more than 122 seconds.       Not tainted 5.14.0-570.12.1.bringup7.el9.s390x #1 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:kmcheck         state:D stack:0     pid:72    tgid:72    ppid:2      flags:0x00000000 Call Trace:  [<000000065256f030>] __schedule+0x2a0/0x590  [<000000065256f356>] schedule+0x36/0xe0  [<000000065256f572>] schedule_preempt_disabled+0x22/0x30  [<0000000652570a94>] __mutex_lock.constprop.0+0x484/0x8a8  [<000003ff800673a4>] mlx5_unload_one+0x34/0x58 [mlx5_core]  [<000003ff8006745c>] mlx5_pci_err_detected+0x94/0x140 [mlx5_core]  [<0000000652556c5a>] zpci_event_attempt_error_recovery+0xf2/0x398  [<0000000651b9184a>] __zpci_event_error+0x23a/0x2c0 INFO: task kworker/u1664:6:1514 blocked for more than 122 seconds.       Not tainted 5.14.0-570.12.1.bringup7.el9.s390x #1 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:kworker/u1664:6 state:D stack:0     pid:1514  tgid:1514  ppid:2      flags:0x00000000 Workqueue: mlx5_health0000:00:00.0 mlx5_fw_fatal_reporter_err_work [mlx5_core] Call Trace:  [<000000065256f030>] __schedule+0x2a0/0x590  [<000000065256f356>] schedule+0x36/0xe0  [<0000000652172e28>] pci_wait_cfg+0x80/0xe8  [<0000000652172f94>] pci_cfg_access_lock+0x74/0x88  [<000003ff800916b6>] mlx5_vsc_gw_lock+0x36/0x178 [mlx5_core]  [<000003ff80098824>] mlx5_crdump_collect+0x34/0x1c8 [mlx5_core]  [<000003ff80074b62>] mlx5_fw_fatal_reporter_dump+0x6a/0xe8 [mlx5_core]  [<0000000652512242>] devlink_health_do_dump.part.0+0x82/0x168  [<0000000652513212>] devlink_health_report+0x19a/0x230  [<000003ff80075a12>] mlx5_fw_fatal_reporter_err_work+0xba/0x1b0 [mlx5_core]  No kernel log of the exact same error with an upstream kernel is available - but the very same deadlock situation can be constructed there, too:  - task: kmcheck   mlx5_unload_one() tries to acquire devlink lock while the PCI error   recovery code has set pdev->block_cfg_access by way of   pci_cfg_access_lock() - task: kworker   mlx5_crdump_collect() tries to set block_cfg_access through   pci_cfg_access_lock() while devlink_health_report() had acquired   the devlink lock.  A similar deadlock situation can be reproduced by requesting a crdump with   > devlink health dump show pci/<BDF> reporter fw_fatal  while PCI error recovery is executed on the same <BDF> physical function by mlx5_core's pci_error_handlers. On s390 this can be injected with   > zpcictl --reset-fw <BDF>  Tests with this patch failed to reproduce that second deadlock situation, the devlink command is rejected with "kernel answers: Permission denied" - and we get a kernel log message of:  mlx5_core 1ed0:00:00.1: mlx5_crdump_collect:50:(pid 254382): crdump: failed to lock vsc gw err -5  because the config read of VSC_SEMAPHORE is rejected by the underlying hardware.  Two prior attempts to address this issue have been discussed and ultimately rejected [see link], with the primary argument that s390's implementation of PCI error recovery is imposing restrictions that neither powerpc's EEH nor PCI AER handling need. Tests show that PCI error recovery on s390 is running to completion even without blocking access to PCI config space.

## Where it's fixed

| Platform | Product | Fixed in | Fix | Released |
|---|---|---|---|---|
| Linux | kernel-64kb sles 15.7 | 6.4.0-150700.53.55.1 | [SUSE-SU-2026:2238-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-2238-1.md) | Jun 30, 2026 |
| Linux | kernel-azure sles 15.7 | 6.4.0-150700.53.55.1 | [SUSE-SU-2026:2238-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-2238-1.md) | Jun 30, 2026 |
| Linux | kernel-default sles 15.7 | 6.4.0-150700.53.55.1 | [SUSE-SU-2026:2238-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-2238-1.md) | Jun 30, 2026 |
| Linux | kernel-default-base sles 15.7 | 6.4.0-150700.53.55.1.150700.17.33.1 | [SUSE-SU-2026:2238-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-2238-1.md) | Jun 30, 2026 |
| Linux | kernel-docs sles 15.7 | 6.4.0-150700.53.55.1 | [SUSE-SU-2026:2238-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-2238-1.md) | Jun 30, 2026 |
| Linux | kernel-livepatch-SLE15-SP7_Update_15 sles 15.7 | 1-150700.15.3.1 | [SUSE-SU-2026:2238-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-2238-1.md) | Jun 30, 2026 |
| Linux | kernel-obs-build sles 15.7 | 6.4.0-150700.53.55.1 | [SUSE-SU-2026:2238-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-2238-1.md) | Jun 30, 2026 |
| Linux | kernel-source sles 15.7 | 6.4.0-150700.53.55.1 | [SUSE-SU-2026:2238-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-2238-1.md) | Jun 30, 2026 |
| Linux | kernel-syms sles 15.7 | 6.4.0-150700.53.55.1 | [SUSE-SU-2026:2238-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-2238-1.md) | Jun 30, 2026 |
| Linux | kernel-zfcpdump sles 15.7 | 6.4.0-150700.53.55.1 | [SUSE-SU-2026:2238-1](https://patchblox.com/security/data/fix/linux/suse-su-2026-2238-1.md) | Jun 30, 2026 |
| Linux | linux Debian 12.15 (bookworm) | 6.1.159-1 | [DEBIAN-CVE-2025-68310](https://patchblox.com/security/data/fix/linux/debian-cve-2025-68310.md) | Dec 16, 2025 |
| Linux | linux Debian 13.5 (trixie) | 6.12.63-1 | [DEBIAN-CVE-2025-68310](https://patchblox.com/security/data/fix/linux/debian-cve-2025-68310.md) | Dec 16, 2025 |
| Linux | linux Debian 14 | 6.17.8-1 | [DEBIAN-CVE-2025-68310](https://patchblox.com/security/data/fix/linux/debian-cve-2025-68310.md) | Dec 16, 2025 |

---

Data as of 2026-11-08T13:06:02Z UTC. Source: Patchblox Patch Radar (https://patchblox.com/security/patch-radar). Patchblox finds out-of-date software on Windows, macOS and Linux and updates it through release rings: https://patchblox.com/demo

Free to use with attribution: show "Data: Patchblox Patch Radar" with a link to https://patchblox.com/security/patch-radar. Terms, including what needs a written agreement: https://patchblox.com/security/patch-radar/use-the-data

Product names, logos and trademarks shown on Patch Radar belong to their respective owners. They are used only to identify the software each security fix applies to and to help readers find their platform. Their use does not imply any affiliation with, or endorsement by, those owners, and Patchblox is not affiliated with any of them.
