{"id":20402,"date":"2026-09-10T04:31:43","date_gmt":"2026-09-09T20:31:43","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80919"},"modified":"2026-09-10T04:31:43","modified_gmt":"2026-09-09T20:31:43","slug":"cve-2026-80919","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-80919","title":{"rendered":"CVE-2026-80919 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\ndrm\/amdgpu: fix recur"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>drm\/amdgpu: fix recursive ww_mutex acquire in amdgpu_devcoredump_format<\/p>\n<p>When dumping IB contents from a hung job, amdgpu_devcoredump_format()<br \/>\nacquired the VM root PD&#8217;s reservation via amdgpu_vm_lock_by_pasid() and<br \/>\nthen, for each IB, called amdgpu_bo_reserve() on the BO backing the IB.<br \/>\nBoth reservations are reservation_ww_class_mutex objects and neither<br \/>\nused a ww_acquire_ctx, which trips lockdep:<\/p>\n<p>  WARNING: possible recursive locking detected<br \/>\n  &#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8212;&#8211;<br \/>\n  kworker\/u128:0 is trying to acquire lock:<br \/>\n  ffff88838b16e1f0 (reservation_ww_class_mutex){+.+.}-{4:4},<br \/>\n    at: amdgpu_devcoredump_format+0x1594\/0x23f0 [amdgpu]<\/p>\n<p>  but task is already holding lock:<br \/>\n  ffff8882f82681f0 (reservation_ww_class_mutex){+.+.}-{4:4},<br \/>\n    at: amdgpu_devcoredump_format+0x1594\/0x23f0 [amdgpu]<\/p>\n<p>   Possible unsafe locking scenario:<br \/>\n         CPU0<br \/>\n         &#8212;-<br \/>\n    lock(reservation_ww_class_mutex);<br \/>\n    lock(reservation_ww_class_mutex);<\/p>\n<p>   *** DEADLOCK ***<br \/>\n   May be due to missing lock nesting notation<\/p>\n<p>  Workqueue: events_unbound amdgpu_devcoredump_deferred_work [amdgpu]<br \/>\n  Call Trace:<br \/>\n   __ww_mutex_lock.constprop.0<br \/>\n   ww_mutex_lock<br \/>\n   amdgpu_bo_reserve<br \/>\n   amdgpu_devcoredump_format+0x1594 [amdgpu]<br \/>\n   amdgpu_devcoredump_deferred_work+0xea [amdgpu]<\/p>\n<p>The two reservations are on different BOs in the captured trace, so the<br \/>\nsplat is a lockdep-correctness warning, not an observed deadlock. It<br \/>\nbecomes a real self-deadlock whenever the IB BO shares its dma_resv with<br \/>\nthe root PD (the always-valid case, see amdgpu_vm_is_bo_always_valid()):<br \/>\namdgpu_bo_reserve(abo) re-acquires the same ww_mutex without a ticket<br \/>\nand blocks forever. With amdgpu.gpu_recovery=0 the timeout handler<br \/>\nrefires every ~2 s and each invocation produces this splat, drowning the<br \/>\nkernel ring buffer.<\/p>\n<p>Now that amdgpu_vm_lock_by_pasid() takes a drm_exec context, move the IB<br \/>\ndumping into a separate helper that locks the root PD and every IB BO<br \/>\ntogether in a single drm_exec ticket. DRM_EXEC_IGNORE_DUPLICATES handles<br \/>\nIB BOs that share a dma_resv (e.g. always-valid BOs, or two IBs backed<br \/>\nby the same BO). Every lock is now a top-level acquire under one<br \/>\nww_acquire_ctx, so the recursive ww_mutex condition is gone, and the<br \/>\nper-IB amdgpu_bo_reserve()\/amdgpu_bo_unref() dance &#8212; including a BO<br \/>\nrefcount leak on the amdgpu_bo_reserve() failure path &#8212; is removed.<\/p>\n<p>(cherry picked from commit d6bf4242731219ee08ce54c365631e395486651e)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>drm\/amdgpu: fix recursive ww_mutex acquire in amdgpu_devcoredump_format<\/p>\n<p>When dumping IB contents from a hung job, amdgpu_devcoredu<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-20402","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/20402","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=20402"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=20402"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=20402"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}