On 02/22/2016 10:54 PM, Josh Poimboeuf wrote: > The traceoff_on_warning option doesn't have any effect on s390, powerpc, > arm64, parisc, and sh because there are two different types of WARN > implementations: > > 1) The above mentioned architectures treat WARN() as a special case of a > BUG() exception. They handle warnings in report_bug() in lib/bug.c. > > 2) All other architectures just call warn_slowpath_*() directly. Their > warnings are handled in warn_slowpath_common() in kernel/panic.c. > > Support traceoff_on_warning on all architectures and prevent any future > divergence by using a single common function to emit the warning. > > Also remove the '()' from '%pS()', because the parentheses look funky: > > [ 45.607629] WARNING: at /root/warn_mod/warn_mod.c:17 > .init_dummy+0x20/0x40 [warn_mod]() > > Reported-by: Chunyu Hu <[email protected]> > Signed-off-by: Josh Poimboeuf <[email protected]>
<snip> > - > - print_modules(); > - show_regs(regs); > - print_oops_end_marker(); > - /* Just a warning, don't kill lockdep. */ > - add_taint(BUG_GET_TAINT(bug), LOCKDEP_STILL_OK); > + __warn(file, line, (void *)bugaddr, BUG_GET_TAINT(bug), regs, > + NULL); > + ^^^ minor minor minor nit: extra line here. Not a big deal but change it if anyone else complains. Other than that ... Acked-and-tested-by: Prarit Bhargava <[email protected]> P. > return BUG_TRAP_TYPE_WARN; > } > >

