On Sat, Oct 05, 2013 at 08:05:58PM -0400, Steven Rostedt wrote:
> >     if (type == JUMP_LABEL_ENABLE) {
> > -           /*
> > -            * We are enabling this jump label. If it is not a nop
> > -            * then something must have gone wrong.
> > -            */
> > -           if (unlikely(memcmp((void *)entry->code, ideal_nop, 5) != 0))
> > -                   bug_at((void *)entry->code, __LINE__);
> > +           if (init) {
> > +                   /*
> > +                    * Jump label is enabled for the first time.
> > +                    * So we expect a default_nop...
> > +                    */
> > +                   if (unlikely(memcmp((void *)entry->code, default_nop, 5)
> > +                                != 0))
> > +                           bug_at((void *)entry->code, __LINE__);
> > +           } else {
> > +                   /*
> > +                    * ...otherwise expect an ideal_nop. Otherwise
> > +                    * something went horribly wrong.
> > +                    */
> > +                   if (unlikely(memcmp((void *)entry->code, ideal_nop, 5)
> > +                                != 0))
> > +                           bug_at((void *)entry->code, __LINE__);
> > +           }
> 
> I don't know if I like this change. This is similar to a bug we had
> with the Xen folks, where they didn't realize that jump labels are not
> suppose to be used (or set) before jump_label_init() is called.
> 
> I'll have to take a deeper look at this on Monday.

Yes, I understand and saw the commit to call jump_label_init
earlier. Maybe the default could be to insert illegal instructions by
default if we try to replace them with nops or branches afterwards anyway.

insn_sanity programs would have to be tought about that, then.

Greetings,

  Hannes

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to