From: Tiezhu Yang <yangtiezhu@loongson.cn> To: Baoquan He <bhe@redhat.com>, Jonathan Corbet <corbet@lwn.net>, Andrew Morton <akpm@linux-foundation.org>, Peter Zijlstra <peterz@infradead.org>, Marco Elver <elver@google.com> Cc: kexec@lists.infradead.org, linux-doc@vger.kernel.org, kasan-dev@googlegroups.com, linux-mm@kvack.org, linux-kernel@vger.kernel.org Subject: [PATCH 5/5] kfence: unset panic_on_warn before calling panic() Date: Fri, 28 Jan 2022 19:42:25 +0800 [thread overview] Message-ID: <1643370145-26831-6-git-send-email-yangtiezhu@loongson.cn> (raw) In-Reply-To: <1643370145-26831-1-git-send-email-yangtiezhu@loongson.cn> As done in the full WARN() handler, panic_on_warn needs to be cleared before calling panic() to avoid recursive panics. Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> --- mm/kfence/report.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mm/kfence/report.c b/mm/kfence/report.c index f93a7b2..9d61a23 100644 --- a/mm/kfence/report.c +++ b/mm/kfence/report.c @@ -267,8 +267,16 @@ void kfence_report_error(unsigned long address, bool is_write, struct pt_regs *r lockdep_on(); - if (panic_on_warn) + if (panic_on_warn) { + /* + * This thread may hit another WARN() in the panic path. + * Resetting this prevents additional WARN() from panicking the + * system on this thread. Other threads are blocked by the + * panic_mutex in panic(). + */ + panic_on_warn = 0; panic("panic_on_warn set ...\n"); + } /* We encountered a memory safety error, taint the kernel! */ add_taint(TAINT_BAD_PAGE, LOCKDEP_STILL_OK); -- 2.1.0
WARNING: multiple messages have this Message-ID (diff)
From: Tiezhu Yang <yangtiezhu@loongson.cn> To: kexec@lists.infradead.org Subject: [PATCH 5/5] kfence: unset panic_on_warn before calling panic() Date: Fri, 28 Jan 2022 19:42:25 +0800 [thread overview] Message-ID: <1643370145-26831-6-git-send-email-yangtiezhu@loongson.cn> (raw) In-Reply-To: <1643370145-26831-1-git-send-email-yangtiezhu@loongson.cn> As done in the full WARN() handler, panic_on_warn needs to be cleared before calling panic() to avoid recursive panics. Signed-off-by: Tiezhu Yang <yangtiezhu@loongson.cn> --- mm/kfence/report.c | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/mm/kfence/report.c b/mm/kfence/report.c index f93a7b2..9d61a23 100644 --- a/mm/kfence/report.c +++ b/mm/kfence/report.c @@ -267,8 +267,16 @@ void kfence_report_error(unsigned long address, bool is_write, struct pt_regs *r lockdep_on(); - if (panic_on_warn) + if (panic_on_warn) { + /* + * This thread may hit another WARN() in the panic path. + * Resetting this prevents additional WARN() from panicking the + * system on this thread. Other threads are blocked by the + * panic_mutex in panic(). + */ + panic_on_warn = 0; panic("panic_on_warn set ...\n"); + } /* We encountered a memory safety error, taint the kernel! */ add_taint(TAINT_BAD_PAGE, LOCKDEP_STILL_OK); -- 2.1.0
next prev parent reply other threads:[~2022-01-28 11:42 UTC|newest] Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top 2022-01-28 11:42 [PATCH 0/5] Update doc and fix some issues about kdump Tiezhu Yang 2022-01-28 11:42 ` Tiezhu Yang 2022-01-28 11:42 ` [PATCH 1/5] docs: kdump: update description about sysfs file system support Tiezhu Yang 2022-01-28 11:42 ` Tiezhu Yang 2022-01-30 2:10 ` Baoquan He 2022-01-30 2:10 ` Baoquan He 2022-01-28 11:42 ` [PATCH 2/5] docs: kdump: add scp sample to write out the dump file Tiezhu Yang 2022-01-28 11:42 ` Tiezhu Yang 2022-01-30 2:46 ` Baoquan He 2022-01-30 2:46 ` Baoquan He 2022-01-28 11:42 ` [PATCH 3/5] kcsan: unset panic_on_warn before calling panic() Tiezhu Yang 2022-01-28 11:42 ` Tiezhu Yang 2022-01-28 11:42 ` [PATCH 4/5] sched: " Tiezhu Yang 2022-01-28 11:42 ` Tiezhu Yang 2022-01-28 11:52 ` Marco Elver 2022-01-28 11:52 ` Marco Elver 2022-01-30 0:29 ` Tiezhu Yang 2022-01-30 0:29 ` Tiezhu Yang 2022-01-28 11:42 ` Tiezhu Yang [this message] 2022-01-28 11:42 ` [PATCH 5/5] kfence: " Tiezhu Yang
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=1643370145-26831-6-git-send-email-yangtiezhu@loongson.cn \ --to=yangtiezhu@loongson.cn \ --cc=akpm@linux-foundation.org \ --cc=bhe@redhat.com \ --cc=corbet@lwn.net \ --cc=elver@google.com \ --cc=kasan-dev@googlegroups.com \ --cc=kexec@lists.infradead.org \ --cc=linux-doc@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=linux-mm@kvack.org \ --cc=peterz@infradead.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: linkBe 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.