UPSTREAM: kasan: support panic_on_warn
authorDmitry Vyukov <dvyukov@google.com>
Tue, 13 Dec 2016 00:44:53 +0000 (16:44 -0800)
committerPaul Lawrence <paullawrence@google.com>
Thu, 14 Dec 2017 16:24:47 +0000 (08:24 -0800)
If user sets panic_on_warn, he wants kernel to panic if there is
anything barely wrong with the kernel.  KASAN-detected errors are
definitely not less benign than an arbitrary kernel WARNING.

Panic after KASAN errors if panic_on_warn is set.

We use this for continuous fuzzing where we want kernel to stop and
reboot on any error.

Link: http://lkml.kernel.org/r/1476694764-31986-1-git-send-email-dvyukov@google.com
Signed-off-by: Dmitry Vyukov <dvyukov@google.com>
Acked-by: Andrey Ryabinin <aryabinin@virtuozzo.com>
Cc: Alexander Potapenko <glider@google.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Bug: 64145065
(cherry-picked from 5c5c1f36cedfb51ec291181e71817f7fe7e03ee2)
Change-Id: Iee7cbc4ffbce8eb8d827447fdf960a6520d10b00
Signed-off-by: Paul Lawrence <paullawrence@google.com>
mm/kasan/report.c

index 8ca412aebcf1f39c65de1e09b89d8fdcf071efca..f479365530b6484bbd5cae42064521fed362961e 100644 (file)
@@ -137,6 +137,8 @@ static void kasan_end_report(unsigned long *flags)
        pr_err("==================================================================\n");
        add_taint(TAINT_BAD_PAGE, LOCKDEP_NOW_UNRELIABLE);
        spin_unlock_irqrestore(&report_lock, *flags);
+       if (panic_on_warn)
+               panic("panic_on_warn set ...\n");
        kasan_enable_current();
 }