On Thu, Feb 07, 2019 at 02:21:09PM +0100, Daniel Bristot de Oliveira wrote: > diff --git a/kernel/jump_label.c b/kernel/jump_label.c > index 288d630da22d..1e6f4d27e28d 100644 > --- a/kernel/jump_label.c > +++ b/kernel/jump_label.c > @@ -374,22 +374,29 @@ static enum jump_label_type jump_label_type(struct > jump_entry *entry) > return enabled ^ branch; > } > > +static bool jump_label_can_update(struct jump_entry *entry, bool init) > +{ > + /* > + * Cannot update code that was in an init text area. > + */ > + if (!init || jump_entry_is_init(entry))
Shouldn't this be && ? > + return false; > + > + if (WARN_ONCE(!kernel_text_address(jump_entry_code(entry)), > + "can't patch jump_label at %pS", (void > *)jump_entry_code(entry))) > + return false; Yeah, I think that this way of writing it is less readable than: if (!kernel_text_address(jump_entry_code(entry))) { WARN_ONCE(1, "can't patch jump_label at %pS", (void *)jump_entry_code(entry)); return false; } > + if (jump_label_can_update(entry, init)) { > + arch_jump_label_transform(entry, > jump_label_type(entry)); Yap. Thx. -- Regards/Gruss, Boris. Good mailing practices for 400: avoid top-posting and trim the reply.