From: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
To: linux-kernel@vger.kernel.org
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
stable@vger.kernel.org, Dave Hansen <dave.hansen@linux.intel.com>,
Andrew Morton <akpm@linux-foundation.org>,
Dave Hansen <dave.hansen@intel.com>,
Linus Torvalds <torvalds@linux-foundation.org>,
Michael Ellermen <mpe@ellerman.id.au>,
Peter Zijlstra <peterz@infradead.org>,
Ram Pai <linuxram@us.ibm.com>, Shuah Khan <shuah@kernel.org>,
Thomas Gleixner <tglx@linutronix.de>,
linux-mm@kvack.org, Ingo Molnar <mingo@kernel.org>,
Sasha Levin <alexander.levin@microsoft.com>
Subject: [PATCH 4.16 240/279] x86/pkeys/selftests: Avoid printf-in-signal deadlocks
Date: Mon, 18 Jun 2018 10:13:45 +0200 [thread overview]
Message-ID: <20180618080618.719688426@linuxfoundation.org> (raw)
In-Reply-To: <20180618080608.851973560@linuxfoundation.org>
4.16-stable review patch. If anyone has any objections, please let me know.
------------------
From: Dave Hansen <dave.hansen@linux.intel.com>
[ Upstream commit caf9eb6b4c82fc6cbd03697052ff22d97b0c377b ]
printf() and friends are unusable in signal handlers. They deadlock.
The pkey selftest does not do any normal printing in signal handlers,
only extra debugging. So, just print the format string so we get
*some* output when debugging.
Signed-off-by: Dave Hansen <dave.hansen@linux.intel.com>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Dave Hansen <dave.hansen@intel.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Michael Ellermen <mpe@ellerman.id.au>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Ram Pai <linuxram@us.ibm.com>
Cc: Shuah Khan <shuah@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: linux-mm@kvack.org
Link: http://lkml.kernel.org/r/20180509171344.C53FD2F3@viggo.jf.intel.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Signed-off-by: Sasha Levin <alexander.levin@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
tools/testing/selftests/x86/pkey-helpers.h | 20 ++++++++------------
1 file changed, 8 insertions(+), 12 deletions(-)
--- a/tools/testing/selftests/x86/pkey-helpers.h
+++ b/tools/testing/selftests/x86/pkey-helpers.h
@@ -26,30 +26,26 @@ static inline void sigsafe_printf(const
{
va_list ap;
- va_start(ap, format);
if (!dprint_in_signal) {
+ va_start(ap, format);
vprintf(format, ap);
+ va_end(ap);
} else {
int ret;
- int len = vsnprintf(dprint_in_signal_buffer,
- DPRINT_IN_SIGNAL_BUF_SIZE,
- format, ap);
/*
- * len is amount that would have been printed,
- * but actual write is truncated at BUF_SIZE.
+ * No printf() functions are signal-safe.
+ * They deadlock easily. Write the format
+ * string to get some output, even if
+ * incomplete.
*/
- if (len > DPRINT_IN_SIGNAL_BUF_SIZE)
- len = DPRINT_IN_SIGNAL_BUF_SIZE;
- ret = write(1, dprint_in_signal_buffer, len);
+ ret = write(1, format, strlen(format));
if (ret < 0)
- abort();
+ exit(1);
}
- va_end(ap);
}
#define dprintf_level(level, args...) do { \
if (level <= DEBUG_LEVEL) \
sigsafe_printf(args); \
- fflush(NULL); \
} while (0)
#define dprintf0(args...) dprintf_level(0, args)
#define dprintf1(args...) dprintf_level(1, args)
next prev parent reply other threads:[~2018-06-18 8:26 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
[not found] <20180618080608.851973560@linuxfoundation.org>
2018-06-18 8:13 ` [PATCH 4.16 234/279] x86/pkeys/selftests: Adjust the self-test to fresh distros that export the pkeys ABI Greg Kroah-Hartman
2018-07-03 11:36 ` Vlastimil Babka
2018-07-03 11:42 ` Greg Kroah-Hartman
2018-07-05 6:03 ` Michael Ellerman
2018-07-05 7:19 ` Ingo Molnar
2018-07-08 10:33 ` Michael Ellerman
2018-07-08 13:25 ` Greg Kroah-Hartman
2018-07-09 3:28 ` Michael Ellerman
2018-06-18 8:13 ` [PATCH 4.16 235/279] x86/mpx/selftests: Adjust the self-test to fresh distros that export the MPX ABI Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.16 237/279] x86/pkeys/selftests: Give better unexpected fault error messages Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.16 238/279] x86/pkeys/selftests: Stop using assert() Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.16 239/279] x86/pkeys/selftests: Remove dead debugging code, fix dprint_in_signal Greg Kroah-Hartman
2018-06-18 8:13 ` Greg Kroah-Hartman [this message]
2018-06-18 8:13 ` [PATCH 4.16 241/279] x86/pkeys/selftests: Allow faults on unknown keys Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.16 242/279] x86/pkeys/selftests: Factor out "instruction page" Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.16 243/279] x86/pkeys/selftests: Add PROT_EXEC test Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.16 244/279] x86/pkeys/selftests: Fix pkey exhaustion test off-by-one Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.16 245/279] x86/pkeys/selftests: Fix pointer math Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.16 246/279] x86/pkeys/selftests: Save off prot for allocations Greg Kroah-Hartman
2018-06-18 8:13 ` [PATCH 4.16 247/279] x86/pkeys/selftests: Add a test for pkey 0 Greg Kroah-Hartman
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=20180618080618.719688426@linuxfoundation.org \
--to=gregkh@linuxfoundation.org \
--cc=akpm@linux-foundation.org \
--cc=alexander.levin@microsoft.com \
--cc=dave.hansen@intel.com \
--cc=dave.hansen@linux.intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxram@us.ibm.com \
--cc=mingo@kernel.org \
--cc=mpe@ellerman.id.au \
--cc=peterz@infradead.org \
--cc=shuah@kernel.org \
--cc=stable@vger.kernel.org \
--cc=tglx@linutronix.de \
--cc=torvalds@linux-foundation.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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).