Home

Description

In the Linux kernel, the following vulnerability has been resolved: smc91x: fix broken irq-context in PREEMPT_RT When smc91x.c is built with PREEMPT_RT, the following splat occurs in FVP_RevC: [ 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=mld_ifc_work [ 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 mld_ifc_work [ 13.062469] Call trace: [ 13.062494] show_stack+0x24/0x40 (C) [ 13.062602] __dump_stack+0x28/0x48 [ 13.062710] dump_stack_lvl+0x7c/0xb0 [ 13.062818] dump_stack+0x18/0x34 [ 13.062926] process_scheduled_works+0x294/0x450 [ 13.063043] worker_thread+0x260/0x3d8 [ 13.063124] kthread+0x1c4/0x228 [ 13.063235] ret_from_fork+0x10/0x20 This happens because smc_special_trylock() disables IRQs even on PREEMPT_RT, but smc_special_unlock() does not restore IRQs on PREEMPT_RT. The reason is that smc_special_unlock() calls spin_unlock_irqrestore(), and rcu_read_unlock_bh() in __dev_queue_xmit() cannot invoke rcu_read_unlock() through __local_bh_enable_ip() when current->softirq_disable_cnt becomes zero. To address this issue, replace smc_special_trylock() with spin_trylock_irqsave().

PUBLISHED Reserved 2026-01-13 | Published 2026-01-14 | Updated 2026-01-19 | Assigner Linux

Product status

Default status
unaffected

342a93247e0837101f27bbcca26f402902df98dc (git) before 1c4cb705e733250d13243f6a69b8b5a92e39b9f6
affected

342a93247e0837101f27bbcca26f402902df98dc (git) before 9d222141b00156509d67d80c771fbefa92c43ace
affected

342a93247e0837101f27bbcca26f402902df98dc (git) before ef277ae121b3249c99994652210a326b52d527b0
affected

342a93247e0837101f27bbcca26f402902df98dc (git) before 36561b86cb2501647662cfaf91286dd6973804a6
affected

342a93247e0837101f27bbcca26f402902df98dc (git) before b6018d5c1a8f09d5efe4d6961d7ee45fdf3a7ce3
affected

342a93247e0837101f27bbcca26f402902df98dc (git) before 6402078bd9d1ed46e79465e1faaa42e3458f8a33
affected

Default status
affected

5.15
affected

Any version before 5.15
unaffected

5.15.198 (semver)
unaffected

6.1.160 (semver)
unaffected

6.6.120 (semver)
unaffected

6.12.64 (semver)
unaffected

6.18.4 (semver)
unaffected

6.19-rc4 (original_commit_for_fix)
unaffected

References

git.kernel.org/...c/1c4cb705e733250d13243f6a69b8b5a92e39b9f6

git.kernel.org/...c/9d222141b00156509d67d80c771fbefa92c43ace

git.kernel.org/...c/ef277ae121b3249c99994652210a326b52d527b0

git.kernel.org/...c/36561b86cb2501647662cfaf91286dd6973804a6

git.kernel.org/...c/b6018d5c1a8f09d5efe4d6961d7ee45fdf3a7ce3

git.kernel.org/...c/6402078bd9d1ed46e79465e1faaa42e3458f8a33

cve.org (CVE-2025-71132)

nvd.nist.gov (CVE-2025-71132)

Download JSON