linux/arch/arm64
Josh Poimboeuf 325cdacd03 debug: Fix WARN_ON_ONCE() for modules
Mike Galbraith reported a situation where a WARN_ON_ONCE() call in DRM
code turned into an oops.  As it turns out, WARN_ON_ONCE() seems to be
completely broken when called from a module.

The bug was introduced with the following commit:

  19d436268d ("debug: Add _ONCE() logic to report_bug()")

That commit changed WARN_ON_ONCE() to move its 'once' logic into the bug
trap handler.  It requires a writable bug table so that the BUGFLAG_DONE
bit can be written to the flags to indicate the first warning has
occurred.

The bug table was made writable for vmlinux, which relies on
vmlinux.lds.S and vmlinux.lds.h for laying out the sections.  However,
it wasn't made writable for modules, which rely on the ELF section
header flags.

Reported-by: Mike Galbraith <efault@gmx.de>
Tested-by: Masami Hiramatsu <mhiramat@kernel.org>
Signed-off-by: Josh Poimboeuf <jpoimboe@redhat.com>
Acked-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Fixes: 19d436268d ("debug: Add _ONCE() logic to report_bug()")
Link: http://lkml.kernel.org/r/a53b04235a65478dd9afc51f5b329fdc65c84364.1500095401.git.jpoimboe@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-07-20 12:31:04 +02:00
..
boot ARM: SoC fixes 2017-06-19 16:50:09 +08:00
configs arm64: defconfig: enable some core options for 64bit Rockchip socs 2017-05-25 17:01:35 -07:00
crypto Revert "crypto: arm64/sha - Add constant operand modifier to ASM_EXPORT" 2017-04-24 16:09:50 +08:00
include debug: Fix WARN_ON_ONCE() for modules 2017-07-20 12:31:04 +02:00
kernel Merge branch 'smp-hotplug-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-07-03 18:08:06 -07:00
kvm arm64: KVM: Allow unaligned accesses at EL2 2017-06-06 22:20:02 +02:00
lib arm64: switch to RAW_COPY_USER 2017-03-28 18:23:24 -04:00
mm IOMMU Updates for Linux v4.12 2017-05-09 15:15:47 -07:00
net bpf, arm64: use separate register for state in stxr 2017-06-07 15:27:20 -04:00
xen xen/privcmd: Add IOCTL_PRIVCMD_DM_OP 2017-02-14 15:13:43 -05:00
Kconfig Merge branch 'linus' into x86/mm, to pick up fixes 2017-06-22 10:57:28 +02:00
Kconfig.debug arm64: relocation testing module 2017-04-04 17:03:32 +01:00
Kconfig.platforms clocksource/drivers: Rename CLKSRC_OF to TIMER_OF 2017-06-14 12:01:03 +02:00
Makefile Kbuild misc updates for 4.12 2017-05-10 20:41:43 -07:00