Description
In the Linux kernel, the following vulnerability has been resolved: net: enetc: fix the deadlock of enetc_mdio_lock After applying the workaround for err050089, the LS1028A platform experiences RCU stalls on RT kernel. This issue is caused by the recursive acquisition of the read lock enetc_mdio_lock. Here list some of the call stacks identified under the enetc_poll path that may lead to a deadlock: enetc_poll -> enetc_lock_mdio -> enetc_clean_rx_ring OR napi_complete_done -> napi_gro_receive -> enetc_start_xmit -> enetc_lock_mdio -> enetc_map_tx_buffs -> enetc_unlock_mdio -> enetc_unlock_mdio After enetc_poll acquires the read lock, a higher-priority writer attempts to acquire the lock, causing preemption. The writer detects that a read lock is already held and is scheduled out. However, readers under enetc_poll cannot acquire the read lock again because a writer is already waiting, leading to a thread hang. Currently, the deadlock is avoided by adjusting enetc_lock_mdio to prevent recursive lock acquisition.
Product status
6d36ecdbc4410e61a0e02adc5d3abeee22a8ffd3 (git) before 2781ca82ce8cad263d80b617addb727e6a84c9e5
6d36ecdbc4410e61a0e02adc5d3abeee22a8ffd3 (git) before 1f92f5bd057a4fad9dab6af17963cdd21e5da6ed
6d36ecdbc4410e61a0e02adc5d3abeee22a8ffd3 (git) before 2e55a49dc3b2a6b23329e4fbbd8a5feb20e220aa
6d36ecdbc4410e61a0e02adc5d3abeee22a8ffd3 (git) before 50bd33f6b3922a6b760aa30d409cae891cec8fb5
bf9c564716a13dde6a990d3b02c27cd6e39608bf (git)
ff966263f5f9fdf9740f03fed0762ce73c230a6a (git)
5.12
Any version before 5.12
6.6.115 (semver)
6.12.56 (semver)
6.17.6 (semver)
6.18 (original_commit_for_fix)
References
git.kernel.org/...c/2781ca82ce8cad263d80b617addb727e6a84c9e5
git.kernel.org/...c/1f92f5bd057a4fad9dab6af17963cdd21e5da6ed
git.kernel.org/...c/2e55a49dc3b2a6b23329e4fbbd8a5feb20e220aa
git.kernel.org/...c/50bd33f6b3922a6b760aa30d409cae891cec8fb5
Data based on CVE®. Copyright © 1999-2025, The MITRE Corporation. All rights reserved.