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.
Covered by Rapid7
| Product | Vendor Advisory | Solution File | Added | Published |
|---|---|---|---|---|
| Debian | — | Upgrade linuxUpgrade linux-6.1 | Jan 12, 2026 | Jan 12, 2026 |
| Redhat_linux | — | No solution exists | Jul 17, 2026 | Dec 16, 2025 |
| Ubuntu | — | Upgrade linux-image-nvidia-64kUpgrade linux-image-raspi-6.17Upgrade linux-image-oracle-64k-lts-24.04Upgrade linux-image-kvmUpgrade linux-image-gcp-lts-24.04Upgrade linux-image-generic-hwe-22.04Upgrade linux-image-raspi-realtime-6.8Upgrade linux-image-gcpUpgrade linux-image-xilinx-6.8Upgrade linux-image-realtime-6.17Upgrade linux-image-aws-6.17Upgrade linux-image-virtual-6.17Upgrade linux-image-realtime-6.8.1Upgrade linux-image-6.8.0-106-generic-64kUpgrade linux-image-oracle-64kUpgrade linux-image-intel-iot-realtimeUpgrade linux-image-nvidiaUpgrade linux-image-oem-22.04bUpgrade linux-image-xilinxUpgrade linux-image-6.8.0-1049-nvidia-lowlatency-64kUpgrade linux-image-6.17.0-1008-azureUpgrade linux-image-6.8.0-106-genericUpgrade linux-image-azure-fips-6.8Upgrade linux-image-aws-6.8Upgrade linux-image-generic-6.8Upgrade linux-image-raspi-realtimeUpgrade linux-image-6.17.0-1006-realtimeUpgrade linux-image-azure-6.8Upgrade linux-image-6.8.0-1051-azureUpgrade linux-image-6.17.0-14-genericUpgrade linux-image-6.8.0-1052-azure-fipsUpgrade linux-image-aws-64k-6.17Upgrade linux-image-6.17.0-1007-oracleUpgrade linux-image-aws-fips-6.8Upgrade linux-image-lowlatency-64k-hwe-22.04Upgrade linux-image-gke-6.8Upgrade linux-image-oem-22.04dUpgrade linux-image-oracle-6.8Upgrade linux-image-nvidia-6.8Upgrade linux-image-realtime-hwe-22.04Upgrade linux-image-gcp-64kUpgrade linux-image-6.17.0-1007-oracle-64kUpgrade linux-image-generic-64kUpgrade linux-image-oracle-64k-6.8Upgrade linux-image-gcp-fips-6.8Upgrade linux-image-generic-64k-6.17Upgrade linux-image-gcp-64k-6.8Upgrade linux-image-raspi-6.8Upgrade linux-image-oem-22.04cUpgrade linux-image-6.8.0-1050-aws-fipsUpgrade linux-image-aws-64k-6.8Upgrade linux-image-6.8.0-106-fipsUpgrade linux-image-azureUpgrade linux-image-gcp-fipsUpgrade linux-image-aws-64kUpgrade linux-image-raspiUpgrade linux-image-6.8.0-106-lowlatency-64kUpgrade linux-image-genericUpgrade linux-image-virtual-hwe-22.04Upgrade linux-image-intel-iotgUpgrade linux-image-6.8.0-2040-raspi-realtimeUpgrade linux-image-gke-64k-6.8Upgrade linux-image-6.8.0-1052-gcp-64kUpgrade linux-image-gkeopUpgrade linux-image-virtual-6.8Upgrade linux-image-ibm-lts-24.04Upgrade linux-image-6.8.0-1049-nvidia-lowlatencyUpgrade linux-image-aws-lts-24.04Upgrade linux-image-azure-6.17Upgrade linux-image-oracle-6.17Upgrade linux-image-gkeUpgrade linux-image-oem-22.04Upgrade linux-image-6.17.0-1007-gcp-64kUpgrade linux-image-nvidia-lowlatency-64k-6.8Upgrade linux-image-lowlatency-6.8Upgrade linux-image-gke-64kUpgrade linux-image-azure-lts-24.04Upgrade linux-image-6.8.0-1047-oracle-64kUpgrade linux-image-oem-22.04aUpgrade linux-image-generic-lpaeUpgrade linux-image-gcp-6.8Upgrade linux-image-6.8.1-1045-realtimeUpgrade linux-image-6.17.0-1007-aws-64kUpgrade linux-image-fips-6.8Upgrade linux-image-6.17.0-1011-oemUpgrade linux-image-fipsUpgrade linux-image-6.8.0-1049-nvidia-64kUpgrade linux-image-ibm-classicUpgrade linux-image-ibm-6.8Upgrade linux-image-6.8.0-1052-gcpUpgrade linux-image-ibmUpgrade linux-image-lowlatencyUpgrade linux-image-nvidia-lowlatencyUpgrade linux-image-xilinx-zynqmpUpgrade linux-image-oracle-64k-6.17Upgrade linux-image-6.8.0-106-lowlatencyUpgrade linux-image-gcp-64k-6.17Upgrade linux-image-6.8.0-1050-raspiUpgrade linux-image-6.17.0-14-generic-64kUpgrade linux-image-oracleUpgrade linux-image-gcp-6.17Upgrade linux-image-oem-6.17Upgrade linux-image-virtualUpgrade linux-image-aws-fipsUpgrade linux-image-awsUpgrade linux-image-6.8.0-1050-aws-64kUpgrade linux-image-6.8.0-1052-gcp-fipsUpgrade linux-image-nvidia-lowlatency-64kUpgrade linux-image-gcp-64k-lts-24.04Upgrade linux-image-6.17.0-1007-awsUpgrade linux-image-realtimeUpgrade linux-image-generic-64k-hwe-22.04Upgrade linux-image-6.8.0-1049-ibmUpgrade linux-image-6.8.0-1035-gkeopUpgrade linux-image-lowlatency-hwe-22.04Upgrade linux-image-generic-6.17Upgrade linux-image-azure-fipsUpgrade linux-image-generic-64k-6.8Upgrade linux-image-6.8.0-1050-awsUpgrade linux-image-6.8.0-1049-nvidiaUpgrade linux-image-6.8.0-1048-gke-64kUpgrade linux-image-6.17.0-1007-gcpUpgrade linux-image-nvidia-lowlatency-6.8Upgrade linux-image-6.8.0-1047-oracleUpgrade linux-image-nvidia-64k-6.8Upgrade linux-image-6.8.0-1029-xilinxUpgrade linux-image-nvidia-hwe-22.04Upgrade linux-image-aws-64k-lts-24.04Upgrade linux-image-lowlatency-64k-6.8Upgrade linux-image-lowlatency-64kUpgrade linux-image-nvidia-64k-hwe-22.04Upgrade linux-image-oracle-lts-24.04Upgrade linux-image-gkeop-6.8Upgrade linux-image-6.17.0-1008-raspiUpgrade linux-image-6.8.0-1048-gke | Feb 13, 2026 | Feb 12, 2026 |
| Vmware Photon_os | — | Use 'tdnf update' to upgrade all packages to the latest version. | May 27, 2026 | Dec 16, 2025 |
Prioritise with Active Threat Intelligence
With curated Threat Intelligence, you can see which vulnerabilities truly put you at risk, prioritize what matters most, and act before attackers do.
Explore Intelligence Hub