Skip to content
CVE PROGRAM SOURCE RECORD7.5 High

CVE-2025-40347

net: enetc: fix the deadlock of enetc_mdio_lock

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.

Affected products

Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.

Linux Linux

Default version status: unaffected

  • 6d36ecdbc4410e61a0e02adc5d3abeee22a8ffd3 to < a649161526736f48bcc592e3a412e5bcd7dd9e24affected
  • 6d36ecdbc4410e61a0e02adc5d3abeee22a8ffd3 to < 2781ca82ce8cad263d80b617addb727e6a84c9e5affected
  • 6d36ecdbc4410e61a0e02adc5d3abeee22a8ffd3 to < 1f92f5bd057a4fad9dab6af17963cdd21e5da6edaffected
  • 6d36ecdbc4410e61a0e02adc5d3abeee22a8ffd3 to < 2e55a49dc3b2a6b23329e4fbbd8a5feb20e220aaaffected
  • 6d36ecdbc4410e61a0e02adc5d3abeee22a8ffd3 to < 50bd33f6b3922a6b760aa30d409cae891cec8fb5affected
  • bf9c564716a13dde6a990d3b02c27cd6e39608bfaffected
  • ff966263f5f9fdf9740f03fed0762ce73c230a6aaffected
  • 5.10.24 to < 5.11affected
  • 5.11.7 to < 5.12affected

Linux Linux

Default version status: affected

  • 5.12affected
  • 0 to < 5.12unaffected
  • 6.1.175 to ≤ 6.1.*unaffected
  • 6.6.115 to ≤ 6.6.*unaffected
  • 6.12.56 to ≤ 6.12.*unaffected
  • 6.17.6 to ≤ 6.17.*unaffected
  • 6.18 to ≤ *unaffected

References