debug: Add _ONCE() logic to report_bug()
authorPeter Zijlstra <peterz@infradead.org>
Sat, 25 Feb 2017 07:56:53 +0000 (08:56 +0100)
committerIngo Molnar <mingo@kernel.org>
Thu, 30 Mar 2017 07:37:20 +0000 (09:37 +0200)
commit19d436268dde95389c616bb3819da73f0a8b28a8
treebd08a3466744511ad2d07edd5e9be4161cfb56e2
parent70579a86e3c8eb2ce57999e594a73b4dfe095959
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>
arch/arm64/include/asm/bug.h
arch/parisc/include/asm/bug.h
arch/powerpc/include/asm/bug.h
arch/s390/include/asm/bug.h
arch/sh/include/asm/bug.h
arch/x86/include/asm/bug.h
include/asm-generic/bug.h
include/asm-generic/vmlinux.lds.h
include/linux/bug.h
lib/bug.c