x86/entry, bug: Comment the instrumentation_begin() usage for WARN()
authorPeter Zijlstra <peterz@infradead.org>
Thu, 4 Jun 2020 09:17:40 +0000 (11:17 +0200)
committerPeter Zijlstra <peterz@infradead.org>
Mon, 15 Jun 2020 12:10:10 +0000 (14:10 +0200)
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@infradead.org>
arch/x86/include/asm/bug.h

index fb34ff6..0281895 100644 (file)
@@ -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();                                \