aboutsummaryrefslogtreecommitdiff
path: root/mm/kmemleak.c
diff options
context:
space:
mode:
authorAlex Shi <alex.shi@linaro.org>2016-04-27 10:08:48 +0800
committerAlex Shi <alex.shi@linaro.org>2016-04-27 10:08:48 +0800
commita79bee58f4fc3cc237fc86667edf2d0b9dce0173 (patch)
tree7d1df3ba21a3de136cd0649caeec50f793133a03 /mm/kmemleak.c
parentef59ba115fc76ea4c21030f49e31fe18e9055679 (diff)
parente0ac66e00b01f6ff4e8274a4b5c008a26583c1b9 (diff)
Merge branch 'linux-linaro-lsk-v3.18' into linux-linaro-lsk-v3.18-androidlsk-v3.18-16.04-android
Conflicts: arch/arm64/kernel/head.S arch/arm64/mm/Makefile
Diffstat (limited to 'mm/kmemleak.c')
-rw-r--r--mm/kmemleak.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/mm/kmemleak.c b/mm/kmemleak.c
index 1f14ef68a5c8..c607bc059664 100644
--- a/mm/kmemleak.c
+++ b/mm/kmemleak.c
@@ -98,6 +98,7 @@
#include <asm/processor.h>
#include <linux/atomic.h>
+#include <linux/kasan.h>
#include <linux/kmemcheck.h>
#include <linux/kmemleak.h>
#include <linux/memory_hotplug.h>
@@ -1116,7 +1117,10 @@ static bool update_checksum(struct kmemleak_object *object)
if (!kmemcheck_is_obj_initialized(object->pointer, object->size))
return false;
+ kasan_disable_current();
object->checksum = crc32(0, (void *)object->pointer, object->size);
+ kasan_enable_current();
+
return object->checksum != old_csum;
}
@@ -1167,7 +1171,9 @@ static void scan_block(void *_start, void *_end,
BYTES_PER_POINTER))
continue;
+ kasan_disable_current();
pointer = *ptr;
+ kasan_enable_current();
object = find_and_get_object(pointer, 1);
if (!object)