On Thu, Apr 02, 2020 at 04:01:15PM -0500, Josh Poimboeuf wrote: > On Fri, Mar 20, 2020 at 07:00:02PM +0100, Thomas Gleixner wrote: > > Warnings, bugs and stack protection fails from noinstr sections, e.g. low > > level and early entry code, are likely to be fatal. > > > > Mark them as "safe" to be invoked from noinstr protected code to avoid > > annotating all usage sites. Getting the information out is important. > > > > Signed-off-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> > > --- > > arch/x86/include/asm/bug.h | 3 +++ > > include/asm-generic/bug.h | 9 +++++++-- > > kernel/panic.c | 4 +++- > > 3 files changed, 13 insertions(+), 3 deletions(-) > > > > --- 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? Can't remember, but I think it's weird to put something after you know it unreachable.