{"id":25507,"date":"2026-09-18T04:31:29","date_gmt":"2026-09-17T20:31:29","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90098"},"modified":"2026-09-18T04:31:29","modified_gmt":"2026-09-17T20:31:29","slug":"cve-2026-90098","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-90098","title":{"rendered":"CVE-2026-90098 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\nnet: sparx5: fix slee"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: sparx5: fix sleep in atomic context in MAC table access<\/p>\n<p>sparx5_set_rx_mode() runs with netif_addr_lock_bh held and iterates<br \/>\ndev-&gt;mc via __dev_mc_sync(), which per address calls sparx5_mc_sync() \/<br \/>\nsparx5_mc_unsync() -&gt; sparx5_mact_learn() \/ sparx5_mact_forget().  These<br \/>\ntake sparx5-&gt;lock, a mutex, and then poll the MAC access command<br \/>\nregister with readx_poll_timeout(). A mutex may block, which is not<br \/>\nallowed from atomic context.<\/p>\n<p>Convert the driver to the new .ndo_set_rx_mode_async callback introduced<br \/>\nin commit 3554b4345d85 (&#8220;net: introduce ndo_set_rx_mode_async and<br \/>\nnetdev_rx_mode_work&#8221;). The async callback is invoked from process<br \/>\ncontext, so the mutex and sleeping completion poll can remain.<\/p>\n<p>Observed with CONFIG_PROVE_LOCKING, CONFIG_DEBUG_SPINLOCK,<br \/>\nCONFIG_DEBUG_MUTEXES and CONFIG_DEBUG_ATOMIC_SLEEP enabled:<\/p>\n<p>  BUG: sleeping function called from invalid context at kernel\/locking\/mutex.c:591<br \/>\n  in_atomic(): 1, irqs_disabled(): 0, non_block: 0, pid: 217, name: ip<br \/>\n  preempt_count: 201, expected: 0<br \/>\n  Call trace:<br \/>\n   __might_resched+0x144\/0x248<br \/>\n   __might_sleep+0x48\/0x7c<br \/>\n   __mutex_lock+0x74\/0x850<br \/>\n   mutex_lock_nested+0x24\/0x30<br \/>\n   sparx5_mact_learn+0x78\/0x100<br \/>\n   sparx5_mc_sync+0x40\/0x54<br \/>\n   __hw_addr_sync_dev+0xc4\/0x170<br \/>\n   sparx5_set_rx_mode+0x4c\/0x58<br \/>\n   __dev_set_rx_mode+0x64\/0xa4<br \/>\n   __dev_open+0x1ec\/0x26c<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>net: sparx5: fix sleep in atomic context in MAC table access<\/p>\n<p>sparx5_set_rx_mode() runs with netif_addr_lock_bh held and iterates<br \/>\nd<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-25507","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/25507","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=25507"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=25507"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=25507"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}