aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/include/asm/bug.h
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2017-02-25 08:56:53 +0100
committerIngo Molnar <mingo@kernel.org>2017-03-30 09:37:20 +0200
commit19d436268dde95389c616bb3819da73f0a8b28a8 (patch)
treebd08a3466744511ad2d07edd5e9be4161cfb56e2 /arch/x86/include/asm/bug.h
parentx86/debug: Define BUG() again for !CONFIG_BUG (diff)
downloadlinux-dev-19d436268dde95389c616bb3819da73f0a8b28a8.tar.xz
linux-dev-19d436268dde95389c616bb3819da73f0a8b28a8.zip
debug: Add _ONCE() logic to report_bug()
Josh suggested moving the _ONCE logic inside the trap handler, using a bit in the bug_entry::flags field, avoiding the need for the extra variable. Sadly this only works for WARN_ON_ONCE(), since the others have printk() statements prior to triggering the trap. Still, this saves a fair amount of text and some data: text data filename 10682460 4530992 defconfig-build/vmlinux.orig 10665111 4530096 defconfig-build/vmlinux.patched Suggested-by: Josh Poimboeuf <jpoimboe@redhat.com> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Cc: Andy Lutomirski <luto@kernel.org> Cc: Arnd Bergmann <arnd@arndb.de> Cc: Borislav Petkov <bp@alien8.de> Cc: Brian Gerst <brgerst@gmail.com> Cc: Denys Vlasenko <dvlasenk@redhat.com> Cc: H. Peter Anvin <hpa@zytor.com> Cc: Linus Torvalds <torvalds@linux-foundation.org> Cc: Peter Zijlstra <peterz@infradead.org> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/include/asm/bug.h')
-rw-r--r--arch/x86/include/asm/bug.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/include/asm/bug.h b/arch/x86/include/asm/bug.h
index cecf559d0012..39e702d90cdb 100644
--- a/arch/x86/include/asm/bug.h
+++ b/arch/x86/include/asm/bug.h
@@ -76,7 +76,7 @@ do { \
unreachable(); \
} while (0)
-#define __WARN_TAINT(taint) _BUG_FLAGS(ASM_UD0, BUGFLAG_TAINT(taint))
+#define __WARN_FLAGS(flags) _BUG_FLAGS(ASM_UD0, BUGFLAG_WARNING|(flags))
#include <asm-generic/bug.h>