lkml.org 
[lkml]   [2014]   [Oct]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v5 11/12] kmemleak: disable kasan instrumentation for kmemleak
    Date
    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>
    ---
    mm/kmemleak.c | 6 ++++++
    1 file changed, 6 insertions(+)

    diff --git a/mm/kmemleak.c b/mm/kmemleak.c
    index 3cda50c..9bda1b3 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>
    @@ -1113,7 +1114,10 @@ static bool update_checksum(struct kmemleak_object *object)
    if (!kmemcheck_is_obj_initialized(object->pointer, object->size))
    return false;

    + kasan_disable_local();
    object->checksum = crc32(0, (void *)object->pointer, object->size);
    + kasan_enable_local();
    +
    return object->checksum != old_csum;
    }

    @@ -1164,7 +1168,9 @@ static void scan_block(void *_start, void *_end,
    BYTES_PER_POINTER))
    continue;

    + kasan_disable_local();
    pointer = *ptr;
    + kasan_enable_local();

    object = find_and_get_object(pointer, 1);
    if (!object)
    --
    2.1.2


    \
     
     \ /
      Last update: 2014-10-27 18:21    [W:4.042 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site