mm/cma: make kmemleak ignore CMA regions
[cascardo/linux.git] / mm / cma.c
index 5c96d7a..f891762 100644 (file)
--- a/mm/cma.c
+++ b/mm/cma.c
@@ -33,6 +33,7 @@
 #include <linux/log2.h>
 #include <linux/cma.h>
 #include <linux/highmem.h>
+#include <linux/io.h>
 
 struct cma {
        unsigned long   base_pfn;
@@ -324,6 +325,11 @@ int __init cma_declare_contiguous(phys_addr_t base,
                        }
                }
 
+               /*
+                * kmemleak scans/reads tracked objects for pointers to other
+                * objects but this address isn't mapped and accessible
+                */
+               kmemleak_ignore(phys_to_virt(addr));
                base = addr;
        }