lkml.org 
[lkml]   [2020]   [Oct]   [28]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    From
    Date
    SubjectRe: [PATCH RFC v2 20/21] kasan: simplify assign_tag and set_tag calls
    On Thu, Oct 22, 2020 at 3:20 PM Andrey Konovalov <andreyknvl@google.com> wrote:
    >
    > set_tag() already ignores the tag for the generic mode, so just call it
    > as is. Add a check for the generic mode to assign_tag(), and simplify its
    > call in ____kasan_kmalloc().
    >
    > Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
    > Link: https://linux-review.googlesource.com/id/I18905ca78fb4a3d60e1a34a4ca00247272480438

    Reviewed-by: Dmitry Vyukov <dvyukov@google.com>

    > ---
    > mm/kasan/common.c | 11 ++++++-----
    > 1 file changed, 6 insertions(+), 5 deletions(-)
    >
    > diff --git a/mm/kasan/common.c b/mm/kasan/common.c
    > index 983383ebe32a..3cd56861eb11 100644
    > --- a/mm/kasan/common.c
    > +++ b/mm/kasan/common.c
    > @@ -235,6 +235,9 @@ void __kasan_poison_object_data(struct kmem_cache *cache, void *object)
    > static u8 assign_tag(struct kmem_cache *cache, const void *object,
    > bool init, bool keep_tag)
    > {
    > + if (IS_ENABLED(CONFIG_KASAN_GENERIC))
    > + return 0xff;
    > +
    > /*
    > * 1. When an object is kmalloc()'ed, two hooks are called:
    > * kasan_slab_alloc() and kasan_kmalloc(). We assign the
    > @@ -277,8 +280,8 @@ void * __must_check __kasan_init_slab_obj(struct kmem_cache *cache,
    > __memset(alloc_meta, 0, sizeof(*alloc_meta));
    > }
    >
    > - if (IS_ENABLED(CONFIG_KASAN_SW_TAGS) || IS_ENABLED(CONFIG_KASAN_HW_TAGS))
    > - object = set_tag(object, assign_tag(cache, object, true, false));
    > + /* Tag is ignored in set_tag() without CONFIG_KASAN_SW/HW_TAGS */
    > + object = set_tag(object, assign_tag(cache, object, true, false));
    >
    > return (void *)object;
    > }
    > @@ -360,9 +363,7 @@ static void *____kasan_kmalloc(struct kmem_cache *cache, const void *object,
    > KASAN_GRANULE_SIZE);
    > redzone_end = round_up((unsigned long)object + cache->object_size,
    > KASAN_GRANULE_SIZE);
    > -
    > - if (IS_ENABLED(CONFIG_KASAN_SW_TAGS) || IS_ENABLED(CONFIG_KASAN_HW_TAGS))
    > - tag = assign_tag(cache, object, false, keep_tag);
    > + tag = assign_tag(cache, object, false, keep_tag);
    >
    > /*
    > * Don't unpoison the object when keeping the tag. Tag is kept for:
    > --
    > 2.29.0.rc1.297.gfa9743e501-goog
    >

    \
     
     \ /
      Last update: 2020-10-28 23:39    [W:4.959 / U:0.184 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site