From: Borislav Petkov <bp@alien8.de>
To: Daniel Bristot de Oliveira <bristot@redhat.com>
Cc: linux-kernel@vger.kernel.org,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, "H. Peter Anvin" <hpa@zytor.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
Masami Hiramatsu <mhiramat@kernel.org>,
"Steven Rostedt (VMware)" <rostedt@goodmis.org>,
Jiri Kosina <jkosina@suse.cz>,
Josh Poimboeuf <jpoimboe@redhat.com>,
"Peter Zijlstra (Intel)" <peterz@infradead.org>,
Chris von Recklinghausen <crecklin@redhat.com>,
Jason Baron <jbaron@akamai.com>, Scott Wood <swood@redhat.com>,
Marcelo Tosatti <mtosatti@redhat.com>,
Clark Williams <williams@redhat.com>,
x86@kernel.org
Subject: Re: [PATCH V4 2/9] jump_label: Add the jump_label_can_update_check() helper
Date: Tue, 5 Feb 2019 08:22:20 +0100 [thread overview]
Message-ID: <20190205072220.GD21801@zn.tnic> (raw)
In-Reply-To: <36237a0ee38d6c98d080d3fee2921501d8788e4d.1549308412.git.bristot@redhat.com>
> Subject: Re: [PATCH V4 2/9] jump_label: Add the jump_label_can_update_check() helper
s/the/a/
On Mon, Feb 04, 2019 at 08:58:55PM +0100, Daniel Bristot de Oliveira wrote:
> Move the check of if a jump_entry is valid to a function.
s/of //
> diff --git a/kernel/jump_label.c b/kernel/jump_label.c
> index 288d630da22d..456c0d7cbb5b 100644
> --- a/kernel/jump_label.c
> +++ b/kernel/jump_label.c
> @@ -374,22 +374,32 @@ static enum jump_label_type jump_label_type(struct jump_entry *entry)
> return enabled ^ branch;
> }
>
> +bool jump_label_can_update_check(struct jump_entry *entry, bool init)
static.
Also, "jump_label_can_update" is sufficient for a name AFAICT.
> +{
> + /*
> + * An entry->code of 0 indicates an entry which has been
> + * disabled because it was in an init text area.
> + */
> + if (init || !jump_entry_is_init(entry)) {
> + if (!kernel_text_address(jump_entry_code(entry))) {
> + WARN_ONCE(1, "can't patch jump_label at %pS",
> + (void *)jump_entry_code(entry));
> + return 0;
> + }
> + return 1;
> + }
> + return 0;
Those should be bools which it returns, no?
Also, I'd do the function this way, to make it more readable and not
have three returns back-to-back. :)
/*
* An entry->code of 0 indicates an entry which has been disabled because it
* was in an init text area.
*/
bool jump_label_can_update(struct jump_entry *entry, bool init)
{
if (!init && jump_entry_is_init(entry))
return false;
if (WARN_ON_ONCE(!kernel_text_address(jump_entry_code(entry))),
"can't patch jump_label at %pS", (void *)jump_entry_code(entry))
return false;
return true;
}
That second check could be even:
if (WARN_ON_ONCE(!kernel_text_address(jump_entry_code(entry))),
"can't patch jump_label at %pS", (void *)jump_entry_code(entry))
return false;
but that's not more readable than above, I'd say.
> static void __jump_label_update(struct static_key *key,
> struct jump_entry *entry,
> struct jump_entry *stop,
> bool init)
> {
> for_each_label_entry(key, entry, stop) {
> - /*
> - * An entry->code of 0 indicates an entry which has been
> - * disabled because it was in an init text area.
> - */
> - if (init || !jump_entry_is_init(entry)) {
> - if (kernel_text_address(jump_entry_code(entry)))
> - arch_jump_label_transform(entry, jump_label_type(entry));
> - else
> - WARN_ONCE(1, "can't patch jump_label at %pS",
> - (void *)jump_entry_code(entry));
> + if (jump_label_can_update_check(entry, init)) {
> + arch_jump_label_transform(entry,
> + jump_label_type(entry));
Yeah, let that one stick out.
--
Regards/Gruss,
Boris.
Good mailing practices for 400: avoid top-posting and trim the reply.
next prev parent reply other threads:[~2019-02-05 7:22 UTC|newest]
Thread overview: 36+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-02-04 19:58 [PATCH V4 0/9] x86/jump_label: Bound IPIs sent when updating a static key Daniel Bristot de Oliveira
2019-02-04 19:58 ` [PATCH V4 1/9] jump_label: Add for_each_label_entry helper Daniel Bristot de Oliveira
2019-02-04 19:58 ` [PATCH V4 2/9] jump_label: Add the jump_label_can_update_check() helper Daniel Bristot de Oliveira
2019-02-05 7:22 ` Borislav Petkov [this message]
2019-02-05 13:50 ` Daniel Bristot de Oliveira
2019-02-05 21:13 ` Borislav Petkov
2019-02-07 13:21 ` Daniel Bristot de Oliveira
2019-02-07 14:08 ` Borislav Petkov
2019-02-07 17:00 ` Daniel Bristot de Oliveira
2019-02-07 17:08 ` Borislav Petkov
2019-02-04 19:58 ` [PATCH V4 3/9] x86/jump_label: Move checking code away from __jump_label_transform() Daniel Bristot de Oliveira
2019-02-05 7:33 ` Borislav Petkov
2019-02-05 15:22 ` Daniel Bristot de Oliveira
2019-02-15 10:05 ` Daniel Bristot de Oliveira
2019-02-04 19:58 ` [PATCH V4 4/9] x86/jump_label: Add __jump_label_set_jump_code() helper Daniel Bristot de Oliveira
2019-02-04 19:58 ` [PATCH V4 5/9] x86/alternative: Split text_poke_bp() into tree steps Daniel Bristot de Oliveira
2019-02-06 19:07 ` Borislav Petkov
2019-02-08 0:11 ` Steven Rostedt
2019-02-08 0:15 ` Steven Rostedt
2019-02-15 12:47 ` Daniel Bristot de Oliveira
2019-02-21 15:26 ` Steven Rostedt
2019-02-04 19:58 ` [PATCH V4 6/9] jump_label: Sort entries of the same key by the code Daniel Bristot de Oliveira
2019-02-04 19:59 ` [PATCH V4 7/9] x86/alternative: Batch of patch operations Daniel Bristot de Oliveira
2019-02-14 12:53 ` Borislav Petkov
2019-02-14 14:06 ` Steven Rostedt
2019-02-14 14:30 ` Borislav Petkov
2019-02-14 14:40 ` Steven Rostedt
2019-02-14 14:54 ` Borislav Petkov
2019-02-15 16:00 ` Daniel Bristot de Oliveira
2019-02-15 17:20 ` Steven Rostedt
2019-02-04 19:59 ` [PATCH V4 8/9] jump_label: Batch updates if arch supports it Daniel Bristot de Oliveira
2019-02-06 6:34 ` Masami Hiramatsu
2019-02-06 15:59 ` Daniel Bristot de Oliveira
2019-02-14 13:33 ` Borislav Petkov
2019-02-04 19:59 ` [PATCH V4 9/9] x86/jump_label: Batch jump label updates Daniel Bristot de Oliveira
2019-02-06 6:29 ` Masami Hiramatsu
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190205072220.GD21801@zn.tnic \
--to=bp@alien8.de \
--cc=bristot@redhat.com \
--cc=crecklin@redhat.com \
--cc=gregkh@linuxfoundation.org \
--cc=hpa@zytor.com \
--cc=jbaron@akamai.com \
--cc=jkosina@suse.cz \
--cc=jpoimboe@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mhiramat@kernel.org \
--cc=mingo@redhat.com \
--cc=mtosatti@redhat.com \
--cc=peterz@infradead.org \
--cc=rostedt@goodmis.org \
--cc=swood@redhat.com \
--cc=tglx@linutronix.de \
--cc=williams@redhat.com \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.