The commit is pushed to "branch-rh7-3.10.0-229.7.2-ovz" and will appear at 
https://src.openvz.org/scm/ovz/vzkernel.git
after rh7-3.10.0-229.7.2.vz7.6.6
------>
commit c15154cbcf8144b7f551b571c0a4a129bfcf999d
Author: Andrey Ryabinin <aryabi...@odin.com>
Date:   Thu Sep 3 19:27:41 2015 +0400

    ms/kmemleak: disable kasan instrumentation for kmemleak
    
    https://jira.sw.ru/browse/PSBM-26429
    
    From: Andrey Ryabinin <a.ryabi...@samsung.com>
    
    commit e79ed2f13faab8fc9d4ad76d5f5a241724e45836 upstream.
    
    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.ryabi...@samsung.com>
    Acked-by: Catalin Marinas <catalin.mari...@arm.com>
    Cc: Dmitry Vyukov <dvyu...@google.com>
    Cc: Konstantin Serebryany <k...@google.com>
    Cc: Dmitry Chernenkov <dmit...@google.com>
    Signed-off-by: Andrey Konovalov <adech...@gmail.com>
    Cc: Yuri Gribov <tetra2...@gmail.com>
    Cc: Konstantin Khlebnikov <koc...@gmail.com>
    Cc: Sasha Levin <sasha.le...@oracle.com>
    Cc: Christoph Lameter <c...@linux.com>
    Cc: Joonsoo Kim <iamjoonsoo....@lge.com>
    Cc: Dave Hansen <dave.han...@intel.com>
    Cc: Andi Kleen <a...@firstfloor.org>
    Cc: Ingo Molnar <mi...@elte.hu>
    Cc: Thomas Gleixner <t...@linutronix.de>
    Cc: "H. Peter Anvin" <h...@zytor.com>
    Cc: Christoph Lameter <c...@linux.com>
    Cc: Pekka Enberg <penb...@kernel.org>
    Cc: David Rientjes <rient...@google.com>
    Signed-off-by: Andrew Morton <a...@linux-foundation.org>
    Signed-off-by: Linus Torvalds <torva...@linux-foundation.org>
    Signed-off-by: Andrey Ryabinin <aryabi...@odin.com>
    
    Signed-off-by: Andrey Ryabinin <aryabi...@odin.com>
---
 mm/kmemleak.c | 6 ++++++
 1 file changed, 6 insertions(+)

diff --git a/mm/kmemleak.c b/mm/kmemleak.c
index 98e1b34..5fe0a34 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>
@@ -1077,7 +1078,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;
 }
 
@@ -1128,7 +1132,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)
_______________________________________________
Devel mailing list
Devel@openvz.org
https://lists.openvz.org/mailman/listinfo/devel

Reply via email to