Skip to content
Snippets Groups Projects
Commit 9701c9ff authored by Arnd Bergmann's avatar Arnd Bergmann Committed by Andrew Morton
Browse files

kasan: mark addr_has_metadata __always_inline

Patch series "objtool warning fixes", v2.

These are three of the easier fixes for objtool warnings around
kasan/kmsan/kcsan.  I dropped one patch since Peter had come up with a
better fix, and adjusted the changelog text based on feedback.


This patch (of 3):

When the compiler decides not to inline this function, objtool complains
about incorrect UACCESS state:

mm/kasan/generic.o: warning: objtool: __asan_load2+0x11: call to addr_has_metadata() with UACCESS enabled

Link: https://lore.kernel.org/all/20230208164011.2287122-1-arnd@kernel.org/
Link: https://lkml.kernel.org/r/20230215130058.3836177-2-arnd@kernel.org


Signed-off-by: default avatarArnd Bergmann <arnd@arndb.de>
Acked-by: default avatarPeter Zijlstra (Intel) <peterz@infradead.org>
Reviewed-by: default avatarMarco Elver <elver@google.com>
Reviewed-by: default avatarAndrey Konovalov <andreyknvl@gmail.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Josh Poimboeuf <jpoimboe@kernel.org>
Cc: Kuan-Ying Lee <Kuan-Ying.Lee@mediatek.com>
Cc: Vincenzo Frascino <vincenzo.frascino@arm.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
parent f7a449f7
No related branches found
No related tags found
No related merge requests found
...@@ -297,7 +297,7 @@ static inline const void *kasan_shadow_to_mem(const void *shadow_addr) ...@@ -297,7 +297,7 @@ static inline const void *kasan_shadow_to_mem(const void *shadow_addr)
<< KASAN_SHADOW_SCALE_SHIFT); << KASAN_SHADOW_SCALE_SHIFT);
} }
static inline bool addr_has_metadata(const void *addr) static __always_inline bool addr_has_metadata(const void *addr)
{ {
return (kasan_reset_tag(addr) >= return (kasan_reset_tag(addr) >=
kasan_shadow_to_mem((void *)KASAN_SHADOW_START)); kasan_shadow_to_mem((void *)KASAN_SHADOW_START));
...@@ -316,7 +316,7 @@ bool kasan_check_range(unsigned long addr, size_t size, bool write, ...@@ -316,7 +316,7 @@ bool kasan_check_range(unsigned long addr, size_t size, bool write,
#else /* CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS */ #else /* CONFIG_KASAN_GENERIC || CONFIG_KASAN_SW_TAGS */
static inline bool addr_has_metadata(const void *addr) static __always_inline bool addr_has_metadata(const void *addr)
{ {
return (is_vmalloc_addr(addr) || virt_addr_valid(addr)); return (is_vmalloc_addr(addr) || virt_addr_valid(addr));
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment