CVE-2025-71132: smc91x: fix broken irq-context in PREEMPT_RT

Published Jan 14, 2026
·
Updated

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

smc91x: fix broken irq-context in PREEMPTRT

When smc91x.c is built with PREEMPTRT, the following splat occurs in FVPRevC:

[ 13.055000] smc91x LNRO0003:00 eth0: link up, 10Mbps, half-duplex, lpa 0x0000 [ 13.062137] BUG: workqueue leaked atomic, lock or RCU: kworker/2:1[106] [ 13.062137] preempt=0x00000000 lock=0->0 RCU=0->1 workfn=mldifcwork [ 13.062266] C replaying previous printk message [ 13.062266] CPU: 2 UID: 0 PID: 106 Comm: kworker/2:1 Not tainted 6.18.0-dirty #179 PREEMPT{RT,(full)} [ 13.062353] Hardware name: , BIOS [ 13.062382] Workqueue: mld mldifcwork [ 13.062469] Call trace: [ 13.062494] showstack+0x24/0x40 (C) [ 13.062602] dumpstack+0x28/0x48 [ 13.062710] dumpstacklvl+0x7c/0xb0 [ 13.062818] dumpstack+0x18/0x34 [ 13.062926] processscheduledworks+0x294/0x450 [ 13.063043] workerthread+0x260/0x3d8 [ 13.063124] kthread+0x1c4/0x228 [ 13.063235] retfromfork+0x10/0x20

This happens because smcspecialtrylock() disables IRQs even on PREEMPTRT, but smcspecialunlock() does not restore IRQs on PREEMPTRT. The reason is that smcspecialunlock() calls spinunlockirqrestore(), and rcureadunlockbh() in devqueuexmit() cannot invoke rcureadunlock() through localbhenableip() when current->softirqdisablecnt becomes zero.

To address this issue, replace smcspecialtrylock() with spintrylockirqsave().

Affected Software

16 affected componentsFixes available
Linux Linux kernel
Linux Linux kernel>=5.15.1<5.15.198
Linux Linux kernel>=5.16<6.1.160
Linux Linux kernel>=6.2<6.6.120
Linux Linux kernel>=6.7<6.12.64
Linux Linux kernel>=6.13<6.18.4
Linux Linux kernel=5.15
Linux Linux kernel=6.19-rc1
Linux Linux kernel=6.19-rc2
Linux Linux kernel=6.19-rc3
Linux Linux kernel=6.19-rc4
Linux Linux kernel=6.19-rc5
Linux Linux kernel=6.19-rc6
Linux Linux kernel=6.19-rc7
Linux Linux kernel=6.19-rc8
debian/linux
6.1.176-16.1.190-16.12.107-16.12.115-27.2.12-17.2.15-1

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade debian/linux to a version that resolves this vulnerability.

    Fixed in 6.1.176-1Fixed in 6.1.190-1Fixed in 6.12.107-1Fixed in 6.12.113-1Fixed in 7.2.12-1Fixed in 7.2.13-1
  2. Compensating control

    In smc91x.c, replace smc_special_trylock() with spin_trylock_irqsave() to preserve IRQ context on PREEMPT_RT.

Event History

Jan 14, 2026
CVE Published
via MITRE·03:07 PM
Data Sourced
via MITRE·03:07 PM
DescriptionSeverity
Data Sourced
via NVD·03:16 PM
RemedyDescriptionSeverityWeaknessAffected Software

Parent advisories

This vulnerability appears in the following advisories.

Peer vulnerabilities

Found alongside the following vulnerabilities.

Frequently Asked Questions

1

What is the severity of CVE-2025-71132?

CVE-2025-71132 is a medium severity vulnerability that affects the smc91x driver when built with PREEMPT_RT.

2

How does CVE-2025-71132 affect system performance?

CVE-2025-71132 can lead to unexpected behavior and instability in systems due to a broken IRQ context.

3

How do I fix CVE-2025-71132?

To fix CVE-2025-71132, you need to update the Linux kernel to a version that includes the patch for this vulnerability.

4

Which systems are affected by CVE-2025-71132?

CVE-2025-71132 affects Linux systems running the smc91x network driver built with the PREEMPT_RT configuration.

5

What does PREEMPT_RT mean in the context of CVE-2025-71132?

PREEMPT_RT refers to a real-time patch for the Linux kernel that improves responsiveness, which is impacted by this vulnerability.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203