diff options
author | Petr Mladek <pmladek@suse.com> | 2022-12-08 11:46:56 +0100 |
---|---|---|
committer | Petr Mladek <pmladek@suse.com> | 2022-12-08 11:46:56 +0100 |
commit | 6b2b0d839acaa84f05a77184370f793752e786e9 (patch) | |
tree | d051c2ca80acc8a442277410d23a2053685f8a85 /kernel/dma/mapping.c | |
parent | printk: use strscpy() to instead of strlcpy() (diff) | |
parent | printk: htmldocs: add missing description (diff) | |
download | linux-6b2b0d839acaa84f05a77184370f793752e786e9.tar.xz linux-6b2b0d839acaa84f05a77184370f793752e786e9.zip |
Merge branch 'rework/console-list-lock' into for-linus
Diffstat (limited to 'kernel/dma/mapping.c')
-rw-r--r-- | kernel/dma/mapping.c | 10 |
1 files changed, 7 insertions, 3 deletions
diff --git a/kernel/dma/mapping.c b/kernel/dma/mapping.c index 27f272381cf2..33437d620644 100644 --- a/kernel/dma/mapping.c +++ b/kernel/dma/mapping.c @@ -10,6 +10,7 @@ #include <linux/dma-map-ops.h> #include <linux/export.h> #include <linux/gfp.h> +#include <linux/kmsan.h> #include <linux/of_device.h> #include <linux/slab.h> #include <linux/vmalloc.h> @@ -156,6 +157,7 @@ dma_addr_t dma_map_page_attrs(struct device *dev, struct page *page, addr = dma_direct_map_page(dev, page, offset, size, dir, attrs); else addr = ops->map_page(dev, page, offset, size, dir, attrs); + kmsan_handle_dma(page, offset, size, dir); debug_dma_map_page(dev, page, offset, size, dir, addr, attrs); return addr; @@ -194,11 +196,13 @@ static int __dma_map_sg_attrs(struct device *dev, struct scatterlist *sg, else ents = ops->map_sg(dev, sg, nents, dir, attrs); - if (ents > 0) + if (ents > 0) { + kmsan_handle_dma_sg(sg, nents, dir); debug_dma_map_sg(dev, sg, nents, ents, dir, attrs); - else if (WARN_ON_ONCE(ents != -EINVAL && ents != -ENOMEM && - ents != -EIO && ents != -EREMOTEIO)) + } else if (WARN_ON_ONCE(ents != -EINVAL && ents != -ENOMEM && + ents != -EIO && ents != -EREMOTEIO)) { return -EIO; + } return ents; } |