mirror of
https://github.com/team-infusion-developers/android_kernel_samsung_msm8976.git
synced 2024-10-31 18:09:19 +00:00
kmemleak: disable kasan instrumentation for kmemleak
kmalloc internally round up allocation size, and kmemleak uses rounded up size as object's size. This makes kasan to complain while kmemleak scans memory or calculates of object's checksum. The simplest solution here is to disable kasan. Signed-off-by: Andrey Ryabinin <a.ryabinin@samsung.com> Acked-by: Catalin Marinas <catalin.marinas@arm.com> Cc: Dmitry Vyukov <dvyukov@google.com> Cc: Konstantin Serebryany <kcc@google.com> Cc: Dmitry Chernenkov <dmitryc@google.com> Signed-off-by: Andrey Konovalov <adech.fo@gmail.com> Cc: Yuri Gribov <tetra2005@gmail.com> Cc: Konstantin Khlebnikov <koct9i@gmail.com> Cc: Sasha Levin <sasha.levin@oracle.com> Cc: Christoph Lameter <cl@linux.com> Cc: Joonsoo Kim <iamjoonsoo.kim@lge.com> Cc: Dave Hansen <dave.hansen@intel.com> Cc: Andi Kleen <andi@firstfloor.org> Cc: Ingo Molnar <mingo@elte.hu> Cc: Thomas Gleixner <tglx@linutronix.de> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Christoph Lameter <cl@linux.com> Cc: Pekka Enberg <penberg@kernel.org> Cc: David Rientjes <rientjes@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org> Git-commit: e79ed2f13faab8fc9d4ad76d5f5a241724e45836 Git-repo: git://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git Change-Id: If7432e3fa6cc41e3281f39f9471bc4891e51cada Signed-off-by: David Keitel <dkeitel@codeaurora.org>
This commit is contained in:
parent
ad86c2bb56
commit
e4fbc9dd40
1 changed files with 6 additions and 0 deletions
|
@ -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>
|
||||
|
@ -1089,7 +1090,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;
|
||||
}
|
||||
|
||||
|
@ -1140,7 +1144,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)
|
||||
|
|
Loading…
Reference in a new issue