The following commit has been merged into the x86/entry branch of tip: Commit-ID: 8e8bb06d199a5aa7a534aa3b3fc0abbbc11ca438 Gitweb: https://git.kernel.org/tip/8e8bb06d199a5aa7a534aa3b3fc0abbbc11ca438 Author: Peter Zijlstra <peterz@xxxxxxxxxxxxx> AuthorDate: Thu, 04 Jun 2020 11:17:40 +02:00 Committer: Peter Zijlstra <peterz@xxxxxxxxxxxxx> CommitterDate: Mon, 15 Jun 2020 14:10:10 +02:00 x86/entry, bug: Comment the instrumentation_begin() usage for WARN() Explain the rationale for annotating WARN(), even though, strictly speaking printk() and friends are very much not safe in many of the places we put them. Signed-off-by: Peter Zijlstra (Intel) <peterz@xxxxxxxxxxxxx> --- arch/x86/include/asm/bug.h | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/arch/x86/include/asm/bug.h b/arch/x86/include/asm/bug.h index fb34ff6..0281895 100644 --- a/arch/x86/include/asm/bug.h +++ b/arch/x86/include/asm/bug.h @@ -75,6 +75,12 @@ do { \ unreachable(); \ } while (0) +/* + * This instrumentation_begin() is strictly speaking incorrect; but it + * suppresses the complaints from WARN()s in noinstr code. If such a WARN() + * were to trigger, we'd rather wreck the machine in an attempt to get the + * message out than not know about it. + */ #define __WARN_FLAGS(flags) \ do { \ instrumentation_begin(); \
![]() |