Description
In the Linux kernel, the following vulnerability has been resolved: e1000: Move cancel_work_sync to avoid deadlock Previously, e1000_down called cancel_work_sync for the e1000 reset task (via e1000_down_and_stop), which takes RTNL. As reported by users and syzbot, a deadlock is possible in the following scenario: CPU 0: - RTNL is held - e1000_close - e1000_down - cancel_work_sync (cancel / wait for e1000_reset_task()) CPU 1: - process_one_work - e1000_reset_task - take RTNL To remedy this, avoid calling cancel_work_sync from e1000_down (e1000_reset_task does nothing if the device is down anyway). Instead, call cancel_work_sync for e1000_reset_task when the device is being removed.
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
e400c7444d84b0fd2ebb34e618f83abe05917543 to < 1fd4438ddcc4958ed24662d5125114299e19bae4affectede400c7444d84b0fd2ebb34e618f83abe05917543 to < b4a8085ceefb7bbb12c2b71c55e71fc946c6929faffected
Linux Linux
Default version status: affected
6.13affected0 to < 6.13unaffected6.15.3 to ≤ 6.15.*unaffected6.16 to ≤ *unaffected