Re: [RESEND][patch V3 06/23] bug: Annotate WARN/BUG/stackfail as noinstr safe

From: Josh Poimboeuf
Date: Thu Apr 02 2020 - 17:43:29 EST


On Thu, Apr 02, 2020 at 11:34:31PM +0200, Peter Zijlstra wrote:
> 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.

Yeah, I guess... but my lizard brain likes to see closure :-)

--
Josh