Hi Andi, Thanks for making it work with the flag, but ...
Andi Kleen <a...@firstfloor.org> writes: > diff --git a/lib/bug.c b/lib/bug.c > index a6a1137d06db..7cb2d41845f7 100644 > --- a/lib/bug.c > +++ b/lib/bug.c > @@ -195,3 +195,24 @@ enum bug_trap_type report_bug(unsigned long bugaddr, > struct pt_regs *regs) > > return BUG_TRAP_TYPE_BUG; > } > + > +static void clear_once_table(struct bug_entry *start, struct bug_entry *end) > +{ > + struct bug_entry *bug; > + > + for (bug = start; bug < end; bug++) > + bug->flags &= ~BUGFLAG_ONCE; Clearing BUGFLAG_ONCE removes the once-ness permanently. ie. it becomes a WARN(). You should be clearing BUGFLAG_DONE, which is the flag that says this WARN has already triggered. cheers