Josh Poimboeuf <jpoimboe@xxxxxxxxxx> writes: > On Fri, Mar 20, 2020 at 07:00:02PM +0100, Thomas Gleixner wrote: >> --- a/arch/x86/include/asm/bug.h >> +++ b/arch/x86/include/asm/bug.h >> @@ -70,13 +70,16 @@ do { \ >> #define HAVE_ARCH_BUG >> #define BUG() \ >> do { \ >> + instr_begin(); \ >> _BUG_FLAGS(ASM_UD2, 0); \ >> unreachable(); \ >> } while (0) > > For visual symmetry at least, it seems like this wants an instr_end() > before the unreachable(). Does objtool not like that? There was some hickup, but can't remember. Will try to reproduce with the latest version of Peter's objtool changes. >> --- a/include/asm-generic/bug.h >> +++ b/include/asm-generic/bug.h >> @@ -83,14 +83,19 @@ extern __printf(4, 5) >> void warn_slowpath_fmt(const char *file, const int line, unsigned taint, >> const char *fmt, ...); >> #define __WARN() __WARN_printf(TAINT_WARN, NULL) >> -#define __WARN_printf(taint, arg...) \ >> - warn_slowpath_fmt(__FILE__, __LINE__, taint, arg) >> +#define __WARN_printf(taint, arg...) do { \ >> + instr_begin(); \ >> + warn_slowpath_fmt(__FILE__, __LINE__, taint, arg); \ >> + instr_end(); \ >> + while (0) > > Missing a '}' before the 'while'? Yep, fixed that locally already. Thanks, tglx