mm/memblock.c: skip kmemleak for kasan_init()
[sfrench/cifs-2.6.git] / mm / memblock.c
index f57d7620668b2d7ee88e91f54c53407f71e4d161..022d4cbb3618bb3886cec62e69912b4e9a5e8067 100644 (file)
@@ -262,7 +262,8 @@ phys_addr_t __init_memblock memblock_find_in_range_node(phys_addr_t size,
        phys_addr_t kernel_end, ret;
 
        /* pump up @end */
-       if (end == MEMBLOCK_ALLOC_ACCESSIBLE)
+       if (end == MEMBLOCK_ALLOC_ACCESSIBLE ||
+           end == MEMBLOCK_ALLOC_KASAN)
                end = memblock.current_limit;
 
        /* avoid allocating the first page */
@@ -1419,13 +1420,15 @@ again:
 done:
        ptr = phys_to_virt(alloc);
 
-       /*
-        * The min_count is set to 0 so that bootmem allocated blocks
-        * are never reported as leaks. This is because many of these blocks
-        * are only referred via the physical address which is not
-        * looked up by kmemleak.
-        */
-       kmemleak_alloc(ptr, size, 0, 0);
+       /* Skip kmemleak for kasan_init() due to high volume. */
+       if (max_addr != MEMBLOCK_ALLOC_KASAN)
+               /*
+                * The min_count is set to 0 so that bootmem allocated
+                * blocks are never reported as leaks. This is because many
+                * of these blocks are only referred via the physical
+                * address which is not looked up by kmemleak.
+                */
+               kmemleak_alloc(ptr, size, 0, 0);
 
        return ptr;
 }