Instituto Nacional de ciberseguridad. Sección Incibe
Instituto Nacional de Ciberseguridad. Sección INCIBE-CERT

CVE-2026-64590

Gravedad:
Pendiente de análisis
Tipo:
No Disponible / Otro tipo
Fecha de publicación:
06/08/2026
Última modificación:
06/08/2026

Descripción

*** Pendiente de traducción *** In the Linux kernel, the following vulnerability has been resolved:<br /> <br /> dma-buf/udmabuf: skip redundant cpu sync to fix cacheline EEXIST warning<br /> <br /> When CONFIG_DMA_API_DEBUG_SG is enabled, importing a udmabuf into a DRM<br /> driver (e.g. amdgpu for video playback in GNOME Videos / Showtime)<br /> triggers a spurious warning:<br /> <br /> DMA-API: amdgpu 0000:03:00.0: cacheline tracking EEXIST, \<br /> overlapping mappings aren&amp;#39;t supported<br /> WARNING: kernel/dma/debug.c:619 at add_dma_entry+0x473/0x5f0<br /> <br /> The call chain is:<br /> <br /> amdgpu_cs_ioctl<br /> -&gt; amdgpu_ttm_backend_bind<br /> -&gt; dma_buf_map_attachment<br /> -&gt; [udmabuf] map_udmabuf -&gt; get_sg_table<br /> -&gt; dma_map_sgtable(dev, sg, direction, 0) // attrs=0<br /> -&gt; debug_dma_map_sg -&gt; add_dma_entry -&gt; EEXIST<br /> <br /> This happens because udmabuf builds a per-page scatter-gather list via<br /> sg_set_folio(). When begin_cpu_udmabuf() has already created an sg<br /> table mapped for the misc device, and an importer such as amdgpu maps<br /> the same pages for its own device via map_udmabuf(), the DMA debug<br /> infrastructure sees two active mappings whose physical addresses share<br /> cacheline boundaries and warns about the overlap.<br /> <br /> The DMA_ATTR_SKIP_CPU_SYNC flag suppresses this check in<br /> add_dma_entry() because it signals that no CPU cache maintenance is<br /> performed at map/unmap time, making the cacheline overlap harmless.<br /> <br /> All other major dma-buf exporters already pass this flag:<br /> - drm_gem_map_dma_buf() passes DMA_ATTR_SKIP_CPU_SYNC<br /> - amdgpu_dma_buf_map() passes DMA_ATTR_SKIP_CPU_SYNC<br /> <br /> The CPU sync at map/unmap time is also redundant for udmabuf:<br /> begin_cpu_udmabuf() and end_cpu_udmabuf() already perform explicit<br /> cache synchronization via dma_sync_sgtable_for_cpu/device() when CPU<br /> access is requested through the dma-buf interface.<br /> <br /> Pass DMA_ATTR_SKIP_CPU_SYNC to dma_map_sgtable() and<br /> dma_unmap_sgtable() in udmabuf to suppress the spurious warning and<br /> skip the redundant sync.

Impacto