From: Andrey Konovalov <andreyknvl@google.com>
To: Andrew Morton <akpm@linux-foundation.org>
Cc: Catalin Marinas <catalin.marinas@arm.com>,
Will Deacon <will.deacon@arm.com>,
Vincenzo Frascino <vincenzo.frascino@arm.com>,
Dmitry Vyukov <dvyukov@google.com>,
Andrey Ryabinin <aryabinin@virtuozzo.com>,
Alexander Potapenko <glider@google.com>,
Marco Elver <elver@google.com>,
Evgenii Stepanov <eugenis@google.com>,
Branislav Rankov <Branislav.Rankov@arm.com>,
Kevin Brodsky <kevin.brodsky@arm.com>,
kasan-dev@googlegroups.com, linux-arm-kernel@lists.infradead.org,
linux-mm@kvack.org, linux-kernel@vger.kernel.org,
Andrey Konovalov <andreyknvl@google.com>
Subject: [PATCH mm v4 15/19] kasan: simplify assign_tag and set_tag calls
Date: Mon, 23 Nov 2020 21:14:45 +0100 [thread overview]
Message-ID: <121eeab245f98555862b289d2ba9269c868fbbcf.1606162397.git.andreyknvl@google.com> (raw)
In-Reply-To: <cover.1606162397.git.andreyknvl@google.com>
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>
Reviewed-by: Dmitry Vyukov <dvyukov@google.com>
Reviewed-by: Marco Elver <elver@google.com>
Link: https://linux-review.googlesource.com/id/I18905ca78fb4a3d60e1a34a4ca00247272480438
---
mm/kasan/common.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/mm/kasan/common.c b/mm/kasan/common.c
index 1a88e4005181..821678a58ac6 100644
--- a/mm/kasan/common.c
+++ b/mm/kasan/common.c
@@ -234,6 +234,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
@@ -276,8 +279,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;
}
@@ -364,7 +367,7 @@ static void *____kasan_kmalloc(struct kmem_cache *cache, const void *object,
{
unsigned long redzone_start;
unsigned long redzone_end;
- u8 tag = 0xff;
+ u8 tag;
if (gfpflags_allow_blocking(flags))
quarantine_reduce();
@@ -379,9 +382,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);
/* Tag is ignored in set_tag without CONFIG_KASAN_SW/HW_TAGS */
unpoison_range(set_tag(object, tag), size);
--
2.29.2.454.gaff20da3a2-goog
next prev parent reply other threads:[~2020-11-23 20:15 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-11-23 20:14 [PATCH mm v4 00/19] kasan: boot parameters for hardware tag-based mode Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 01/19] kasan: simplify quarantine_put call site Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 02/19] kasan: rename get_alloc/free_info Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 03/19] kasan: introduce set_alloc_info Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 04/19] kasan, arm64: unpoison stack only with CONFIG_KASAN_STACK Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 05/19] kasan: allow VMAP_STACK for HW_TAGS mode Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 06/19] kasan: remove __kasan_unpoison_stack Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 07/19] kasan: inline kasan_reset_tag for tag-based modes Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 08/19] kasan: inline random_tag for HW_TAGS Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 09/19] kasan: open-code kasan_unpoison_slab Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 10/19] kasan: inline (un)poison_range and check_invalid_free Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 11/19] kasan: add and integrate kasan boot parameters Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 12/19] kasan, mm: check kasan_enabled in annotations Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 13/19] kasan, mm: rename kasan_poison_kfree Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 14/19] kasan: don't round_up too much Andrey Konovalov
2020-11-23 20:14 ` Andrey Konovalov [this message]
2020-11-23 20:14 ` [PATCH mm v4 16/19] kasan: clarify comment in __kasan_kfree_large Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 17/19] kasan: sanitize objects when metadata doesn't fit Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 18/19] kasan, mm: allow cache merging with no metadata Andrey Konovalov
2020-11-23 20:14 ` [PATCH mm v4 19/19] kasan: update documentation Andrey Konovalov
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=121eeab245f98555862b289d2ba9269c868fbbcf.1606162397.git.andreyknvl@google.com \
--to=andreyknvl@google.com \
--cc=Branislav.Rankov@arm.com \
--cc=akpm@linux-foundation.org \
--cc=aryabinin@virtuozzo.com \
--cc=catalin.marinas@arm.com \
--cc=dvyukov@google.com \
--cc=elver@google.com \
--cc=eugenis@google.com \
--cc=glider@google.com \
--cc=kasan-dev@googlegroups.com \
--cc=kevin.brodsky@arm.com \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=vincenzo.frascino@arm.com \
--cc=will.deacon@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).