kasan: restructure kasan_report

Restructure kasan_report() to make reviewing the subsequent patches
easier.

Link: https://lkml.kernel.org/r/ca28042889858b8cc4724d3d4378387f90d7a59d.1646237226.git.andreyknvl@google.com
Signed-off-by: Andrey Konovalov <andreyknvl@google.com>
Cc: Alexander Potapenko <glider@google.com>
Cc: Andrey Ryabinin <ryabinin.a.a@gmail.com>
Cc: Dmitry Vyukov <dvyukov@google.com>
Cc: Marco Elver <elver@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Andrey Konovalov 2022-03-24 18:12:49 -07:00 committed by Linus Torvalds
parent b91328002d
commit b3bb1d700e

View File

@ -457,15 +457,18 @@ static void __kasan_report(void *addr, size_t size, bool is_write,
bool kasan_report(unsigned long addr, size_t size, bool is_write, bool kasan_report(unsigned long addr, size_t size, bool is_write,
unsigned long ip) unsigned long ip)
{ {
unsigned long flags = user_access_save(); unsigned long ua_flags = user_access_save();
bool ret = false; bool ret = true;
if (likely(report_enabled())) { if (unlikely(!report_enabled())) {
__kasan_report((void *)addr, size, is_write, ip); ret = false;
ret = true; goto out;
} }
user_access_restore(flags); __kasan_report((void *)addr, size, is_write, ip);
out:
user_access_restore(ua_flags);
return ret; return ret;
} }