]> rtime.felk.cvut.cz Git - hercules2020/nv-tegra/linux-4.4.git/commitdiff
of: reserved_mem: skip kmemleak scan when nomap exists
authorSri Krishna chowdary <schowdary@nvidia.com>
Fri, 11 Mar 2016 06:24:48 +0000 (11:54 +0530)
committerSri Krishna Chowdary <schowdary@nvidia.com>
Thu, 23 Jun 2016 12:04:57 +0000 (05:04 -0700)
The memblocks allocated by reserved memory framework when
there is a nomap property specified in the DT node are
essentially removed from kernel va space. So, do not let
kmemleak to scan the removed areas as it can result in kernel
panic.

bug 200178406

Change-Id: Id4ead3331ae1a88b4b6dbd6f4bf2096f294097b4
Signed-off-by: Sri Krishna chowdary <schowdary@nvidia.com>
Reviewed-on: http://git-master/r/1029340
(cherry picked from commit 356788d3dc14be574a263449c6e8e01fc2ed097c)
Reviewed-on: http://git-master/r/1169261
GVS: Gerrit_Virtual_Submit
Reviewed-by: Sachin Nikam <snikam@nvidia.com>
drivers/of/of_reserved_mem.c

index 47f835c9f71831a7b7053e283901eac940be22e9..29646b1bf0b529c22d20cd72db6a8ef60a0ddaf7 100644 (file)
@@ -21,6 +21,7 @@
 #include <linux/sizes.h>
 #include <linux/of_reserved_mem.h>
 #include <linux/sort.h>
+#include <linux/kmemleak.h>
 
 #define MAX_RESERVED_REGIONS   16
 static struct reserved_mem reserved_mem[MAX_RESERVED_REGIONS];
@@ -49,8 +50,10 @@ int __init __weak early_init_dt_alloc_reserved_memory_arch(phys_addr_t size,
        }
 
        *res_base = base;
-       if (nomap)
+       if (nomap) {
+               kmemleak_no_scan(__va(base));
                return memblock_remove(base, size);
+       }
        return 0;
 }
 #else