projects
/
firefly-linux-kernel-4.4.55.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge tag 'dt-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/arm/arm-soc
[firefly-linux-kernel-4.4.55.git]
/
mm
/
kmemleak.c
diff --git
a/mm/kmemleak.c
b/mm/kmemleak.c
index 3cda50c1e3942100bcd3f8715a9062fe1c6d7528..5405aff5a590c370d3c8ca37c0f9a0c19cb46775 100644
(file)
--- a/
mm/kmemleak.c
+++ b/
mm/kmemleak.c
@@
-98,6
+98,7
@@
#include <asm/processor.h>
#include <linux/atomic.h>
#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>
#include <linux/kmemcheck.h>
#include <linux/kmemleak.h>
#include <linux/memory_hotplug.h>
@@
-1113,7
+1114,10
@@
static bool update_checksum(struct kmemleak_object *object)
if (!kmemcheck_is_obj_initialized(object->pointer, object->size))
return false;
if (!kmemcheck_is_obj_initialized(object->pointer, object->size))
return false;
+ kasan_disable_current();
object->checksum = crc32(0, (void *)object->pointer, object->size);
object->checksum = crc32(0, (void *)object->pointer, object->size);
+ kasan_enable_current();
+
return object->checksum != old_csum;
}
return object->checksum != old_csum;
}
@@
-1164,7
+1168,9
@@
static void scan_block(void *_start, void *_end,
BYTES_PER_POINTER))
continue;
BYTES_PER_POINTER))
continue;
+ kasan_disable_current();
pointer = *ptr;
pointer = *ptr;
+ kasan_enable_current();
object = find_and_get_object(pointer, 1);
if (!object)
object = find_and_get_object(pointer, 1);
if (!object)