OSDN Git Service

kasan: merge __kasan_report into kasan_report
authorAndrey Konovalov <andreyknvl@google.com>
Fri, 25 Mar 2022 01:12:52 +0000 (18:12 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 25 Mar 2022 02:06:49 +0000 (19:06 -0700)
Merge __kasan_report() into kasan_report().  The code is simple enough to
be readable without the __kasan_report() helper.

Link: https://lkml.kernel.org/r/c8a125497ef82f7042b3795918dffb81a85a878e.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>
mm/kasan/report.c

index 41c7966..56d5ba2 100644 (file)
@@ -435,37 +435,31 @@ static void print_report(struct kasan_access_info *info)
        }
 }
 
-static void __kasan_report(void *addr, size_t size, bool is_write,
-                               unsigned long ip)
-{
-       struct kasan_access_info info;
-       unsigned long flags;
-
-       start_report(&flags, true);
-
-       info.access_addr = addr;
-       info.first_bad_addr = kasan_find_first_bad_addr(addr, size);
-       info.access_size = size;
-       info.is_write = is_write;
-       info.ip = ip;
-
-       print_report(&info);
-
-       end_report(&flags, addr);
-}
-
 bool kasan_report(unsigned long addr, size_t size, bool is_write,
                        unsigned long ip)
 {
-       unsigned long ua_flags = user_access_save();
        bool ret = true;
+       void *ptr = (void *)addr;
+       unsigned long ua_flags = user_access_save();
+       unsigned long irq_flags;
+       struct kasan_access_info info;
 
        if (unlikely(!report_enabled())) {
                ret = false;
                goto out;
        }
 
-       __kasan_report((void *)addr, size, is_write, ip);
+       start_report(&irq_flags, true);
+
+       info.access_addr = ptr;
+       info.first_bad_addr = kasan_find_first_bad_addr(ptr, size);
+       info.access_size = size;
+       info.is_write = is_write;
+       info.ip = ip;
+
+       print_report(&info);
+
+       end_report(&irq_flags, ptr);
 
 out:
        user_access_restore(ua_flags);