All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Gow <davidgow@google.com>
To: trishalfonso@google.com, brendanhiggins@google.com,
	aryabinin@virtuozzo.com, dvyukov@google.com, mingo@redhat.com,
	peterz@infradead.org, juri.lelli@redhat.com,
	vincent.guittot@linaro.org, andreyknvl@google.com,
	shuah@kernel.org, akpm@linux-foundation.org
Cc: David Gow <davidgow@google.com>,
	linux-kernel@vger.kernel.org, kasan-dev@googlegroups.com,
	kunit-dev@googlegroups.com, linux-kselftest@vger.kernel.org,
	linux-mm@kvack.org
Subject: [PATCH v12 6/6] mm: kasan: Do not panic if both panic_on_warn and kasan_multishot set
Date: Mon, 10 Aug 2020 22:39:15 -0700	[thread overview]
Message-ID: <20200811053914.652710-7-davidgow@google.com> (raw)
In-Reply-To: <20200811053914.652710-1-davidgow@google.com>

KASAN errors will currently trigger a panic when panic_on_warn is set.
This renders kasan_multishot useless, as further KASAN errors won't be
reported if the kernel has already paniced. By making kasan_multishot
disable this behaviour for KASAN errors, we can still have the benefits
of panic_on_warn for non-KASAN warnings, yet be able to use
kasan_multishot.

This is particularly important when running KASAN tests, which need to
trigger multiple KASAN errors: previously these would panic the system
if panic_on_warn was set, now they can run (and will panic the system
should non-KASAN warnings show up).

Signed-off-by: David Gow <davidgow@google.com>
Reviewed-by: Andrey Konovalov <andreyknvl@google.com>
Reviewed-by: Brendan Higgins <brendanhiggins@google.com>
Tested-by: Andrey Konovalov <andreyknvl@google.com>
---
 mm/kasan/report.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/mm/kasan/report.c b/mm/kasan/report.c
index e2c14b10bc81..00a53f1355ae 100644
--- a/mm/kasan/report.c
+++ b/mm/kasan/report.c
@@ -95,7 +95,7 @@ static void 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) {
+	if (panic_on_warn && !test_bit(KASAN_BIT_MULTI_SHOT, &kasan_flags)) {
 		/*
 		 * This thread may hit another WARN() in the panic path.
 		 * Resetting this prevents additional WARN() from panicking the
-- 
2.28.0.236.gb10cc79966-goog


  parent reply	other threads:[~2020-08-11  5:39 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-11  5:39 [PATCH v12 0/6] KASAN-KUnit Integration David Gow
2020-08-11  5:39 ` David Gow
2020-08-11  5:39 ` [PATCH v12 1/6] Add KUnit Struct to Current Task David Gow
2020-08-11  5:39   ` David Gow
2020-08-11  5:39 ` [PATCH v12 2/6] KUnit: KASAN Integration David Gow
2020-08-11  5:39   ` David Gow
2020-08-11  5:39 ` [PATCH v12 3/6] KASAN: Port KASAN Tests to KUnit David Gow
2020-08-11  5:39   ` David Gow
2020-08-11  5:39 ` [PATCH v12 4/6] kasan: test: Make KASAN KUnit test comply with naming guidelines David Gow
2020-08-11  5:39   ` David Gow
2020-08-11  5:39 ` [PATCH v12 5/6] KASAN: Testing Documentation David Gow
2020-08-11  5:39   ` David Gow
2020-08-11  5:39 ` David Gow [this message]
2020-08-11  5:39   ` [PATCH v12 6/6] mm: kasan: Do not panic if both panic_on_warn and kasan_multishot set David Gow
2020-08-12 12:11 ` [PATCH v12 0/6] KASAN-KUnit Integration Andrey Konovalov
2020-08-12 12:11   ` 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=20200811053914.652710-7-davidgow@google.com \
    --to=davidgow@google.com \
    --cc=akpm@linux-foundation.org \
    --cc=andreyknvl@google.com \
    --cc=aryabinin@virtuozzo.com \
    --cc=brendanhiggins@google.com \
    --cc=dvyukov@google.com \
    --cc=juri.lelli@redhat.com \
    --cc=kasan-dev@googlegroups.com \
    --cc=kunit-dev@googlegroups.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-kselftest@vger.kernel.org \
    --cc=linux-mm@kvack.org \
    --cc=mingo@redhat.com \
    --cc=peterz@infradead.org \
    --cc=shuah@kernel.org \
    --cc=trishalfonso@google.com \
    --cc=vincent.guittot@linaro.org \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.