{"id":29052,"date":"2026-09-25T20:31:45","date_gmt":"2026-09-25T12:31:45","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97620"},"modified":"2026-09-25T20:31:45","modified_gmt":"2026-09-25T12:31:45","slug":"cve-2026-97620","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-97620","title":{"rendered":"CVE-2026-97620 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\ndrm\/xe: Flush LSC unt"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>drm\/xe: Flush LSC untyped L1 dataport cache after rcs\/ccs batches<\/p>\n<p>emit_render_cache_flush() sets PIPE_CONTROL0_HDC_PIPELINE_FLUSH to<br \/>\nflush the L2\/HDC data cache before fence signalling, but it never<br \/>\nrequests a flush of the LSC untyped L1 data cache via the &#8216;Untyped<br \/>\nData-Port Cache Flush Enable&#8217; bit in PIPE_CONTROL DWord0[11].<\/p>\n<p>Per the Bspec, in 3D pipeline mode HDC Pipeline Flush is documented to<br \/>\nalso flush\/invalidate the untyped L1 cache, but only depending on how<br \/>\nHDC_CHICKEN0[13:11] is programmed. Starting with MTL, this coupling<br \/>\nbetween HDC Pipeline Flush and the untyped L1 cache flush no longer<br \/>\nholds in practice, regardless of how HDC_CHICKEN0 is programmed, so<br \/>\nrelying on it is not safe on newer platforms such as BMG. Mesa&#8217;s Vulkan<br \/>\ndriver (anv) has been assuming the kernel flushes both caches between<br \/>\nsubmissions, and hit user-visible corruption in apps such as Llama.cpp<br \/>\nbecause of this gap; it now works around it by flushing both caches<br \/>\nagain from userspace at the end of every command buffer.<\/p>\n<p>Correctness between submissions on the same queue is userspace&#8217;s<br \/>\nresponsibility and belongs in Mesa, not the kernel. However, for<br \/>\nsecurity we must ensure stale data can&#8217;t leak through the untyped L1<br \/>\ndataport cache once memory is reclaimed or evicted, which requires the<br \/>\nKMD to flush it before releasing memory for reuse.<\/p>\n<p>Prior to MTL, HDC_CHICKEN0 could be programmed (as already done for<br \/>\nDG2 via Wa_22010960976\/Wa_14013347512) to reliably keep HDC Pipeline<br \/>\nFlush coupled to the untyped L1 cache flush, so those platforms are<br \/>\nunaffected. Mesa&#8217;s own anv driver found that on MTL the HW<br \/>\ndisconnected the two independently of how HDC_CHICKEN0 is programmed,<br \/>\nand could not bring the old behavior back even by writing the register<br \/>\nby hand; see Mesa commit 7c2ff46a4fc3 (&#8220;anv: don&#8217;t prevent L1 untyped<br \/>\ncache flush in 3D mode&#8221;). The kernel can&#8217;t reliably request the flush<br \/>\nfrom the CS on MTL either, so restrict the new PIPE_CONTROL bit to<br \/>\nGRAPHICS_VERx100 &gt;= 2000 (Xe2 and later), where it can be relied on.<\/p>\n<p>Explicitly set PIPE_CONTROL0_UNTYPED_DATAPORT_CACHE_FLUSH together<br \/>\nwith PIPE_CONTROL0_HDC_PIPELINE_FLUSH in emit_render_cache_flush() on<br \/>\nXe2 and later, so the L1 data cache is known clean before memory is<br \/>\nreleased for reuse, without depending on undocumented<br \/>\nplatform-specific HDC_CHICKEN0 behavior.<\/p>\n<p>Bspec: 56551<br \/>\n(cherry picked from commit 434514b6fe731e873808297c268fc52cdf4a1ce6)<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>drm\/xe: Flush LSC untyped L1 dataport cache after rcs\/ccs batches<\/p>\n<p>emit_render_cache_flush() sets PIPE_CONTROL0_HDC_PIPELINE_FLUSH <\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-29052","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/29052","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=29052"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=29052"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=29052"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}