KMSAN doesn't know about DMA memory writes performed by devices. We unpoison such memory when it's mapped to avoid false positive reports. Signed-off-by: Alexander Potapenko <glider@xxxxxxxxxx> Cc: Christoph Hellwig <hch@xxxxxx> Cc: Marek Szyprowski <m.szyprowski@xxxxxxxxxxx> Cc: Robin Murphy <robin.murphy@xxxxxxx> Cc: Vegard Nossum <vegard.nossum@xxxxxxxxxx> Cc: Dmitry Vyukov <dvyukov@xxxxxxxxxx> Cc: linux-mm@xxxxxxxxx --- Change-Id: Ib1019ed531fea69f88b5cdec3d1e27403f2f3d64 --- kernel/dma/direct.c | 1 + 1 file changed, 1 insertion(+) diff --git a/kernel/dma/direct.c b/kernel/dma/direct.c index 8402b29c280f..3539337f76d9 100644 --- a/kernel/dma/direct.c +++ b/kernel/dma/direct.c @@ -341,6 +341,7 @@ dma_addr_t dma_direct_map_page(struct device *dev, struct page *page, report_addr(dev, dma_addr, size); return DMA_MAPPING_ERROR; } + kmsan_handle_dma(page_address(page) + offset, size, dir); if (!dev_is_dma_coherent(dev) && !(attrs & DMA_ATTR_SKIP_CPU_SYNC)) arch_sync_dma_for_device(dev, phys, size, dir); -- 2.24.0.432.g9d3f5f5b63-goog