All of lore.kernel.org
 help / color / mirror / Atom feed
From: tip-bot for Daniel Bristot de Oliveira <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: peterz@infradead.org, rostedt@goodmis.org, williams@redhat.com,
	jkosina@suse.cz, jbaron@akamai.com, swood@redhat.com,
	crecklin@redhat.com, bristot@redhat.com, mhiramat@kernel.org,
	hpa@zytor.com, tglx@linutronix.de, gregkh@linuxfoundation.org,
	mtosatti@redhat.com, torvalds@linux-foundation.org,
	mingo@kernel.org, bp@alien8.de, jpoimboe@redhat.com,
	linux-kernel@vger.kernel.org
Subject: [tip:locking/core] jump_label: Add a jump_label_can_update() helper
Date: Mon, 17 Jun 2019 07:13:06 -0700	[thread overview]
Message-ID: <tip-e1aacb3f4adc1bcd4273a1d538a2dc3e50f1cbb5@git.kernel.org> (raw)
In-Reply-To: <56b69bd3f8e644ed64f2dbde7c088030b8cbe76b.1560325897.git.bristot@redhat.com>

Commit-ID:  e1aacb3f4adc1bcd4273a1d538a2dc3e50f1cbb5
Gitweb:     https://git.kernel.org/tip/e1aacb3f4adc1bcd4273a1d538a2dc3e50f1cbb5
Author:     Daniel Bristot de Oliveira <bristot@redhat.com>
AuthorDate: Wed, 12 Jun 2019 11:57:26 +0200
Committer:  Ingo Molnar <mingo@kernel.org>
CommitDate: Mon, 17 Jun 2019 12:09:19 +0200

jump_label: Add a jump_label_can_update() helper

Move the check if a jump_entry is valid to a function. No functional
change.

Signed-off-by: Daniel Bristot de Oliveira <bristot@redhat.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Chris von Recklinghausen <crecklin@redhat.com>
Cc: Clark Williams <williams@redhat.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Jason Baron <jbaron@akamai.com>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Scott Wood <swood@redhat.com>
Cc: Steven Rostedt (VMware) <rostedt@goodmis.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: https://lkml.kernel.org/r/56b69bd3f8e644ed64f2dbde7c088030b8cbe76b.1560325897.git.bristot@redhat.com
Signed-off-by: Ingo Molnar <mingo@kernel.org>
---
 kernel/jump_label.c | 29 ++++++++++++++++++-----------
 1 file changed, 18 insertions(+), 11 deletions(-)

diff --git a/kernel/jump_label.c b/kernel/jump_label.c
index 0bfa10f4410c..24f0d3b1526b 100644
--- a/kernel/jump_label.c
+++ b/kernel/jump_label.c
@@ -384,23 +384,30 @@ 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))
+		return false;
+
+	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;
+	}
+
+	return true;
+}
+
 static void __jump_label_update(struct static_key *key,
 				struct jump_entry *entry,
 				struct jump_entry *stop,
 				bool init)
 {
 	for (; (entry < stop) && (jump_entry_key(entry) == key); entry++) {
-		/*
-		 * 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(entry, init))
+			arch_jump_label_transform(entry, jump_label_type(entry));
 	}
 }
 

  reply	other threads:[~2019-06-17 14:14 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-06-12  9:57 [PATCH V6 0/6] x86/jump_label: Bound IPIs sent when updating a static key Daniel Bristot de Oliveira
2019-06-12  9:57 ` [PATCH V6 1/6] jump_label: Add a jump_label_can_update() helper Daniel Bristot de Oliveira
2019-06-17 14:13   ` tip-bot for Daniel Bristot de Oliveira [this message]
2019-06-12  9:57 ` [PATCH V6 2/6] x86/jump_label: Add a __jump_label_set_jump_code() helper Daniel Bristot de Oliveira
2019-06-17 14:13   ` [tip:locking/core] " tip-bot for Daniel Bristot de Oliveira
2019-06-12  9:57 ` [PATCH V6 3/6] jump_label: Sort entries of the same key by the code Daniel Bristot de Oliveira
2019-06-17 14:14   ` [tip:locking/core] " tip-bot for Daniel Bristot de Oliveira
2019-06-12  9:57 ` [PATCH V6 4/6] x86/alternative: Batch of patch operations Daniel Bristot de Oliveira
2019-06-12 14:52   ` Peter Zijlstra
2019-06-12 16:33     ` Daniel Bristot de Oliveira
2019-06-17 14:15   ` [tip:locking/core] " tip-bot for Daniel Bristot de Oliveira
2019-06-12  9:57 ` [PATCH V6 5/6] jump_label: Batch updates if arch supports it Daniel Bristot de Oliveira
2019-06-17 14:15   ` [tip:locking/core] " tip-bot for Daniel Bristot de Oliveira
2019-06-12  9:57 ` [PATCH V6 6/6] x86/jump_label: Batch jump label updates Daniel Bristot de Oliveira
2019-06-17 14:16   ` [tip:locking/core] " tip-bot for Daniel Bristot de Oliveira
2019-06-12 17:07 ` [PATCH V6 0/6] x86/jump_label: Bound IPIs sent when updating a static key Peter Zijlstra
2019-06-13  8:08   ` Daniel Bristot de Oliveira

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=tip-e1aacb3f4adc1bcd4273a1d538a2dc3e50f1cbb5@git.kernel.org \
    --to=tipbot@zytor.com \
    --cc=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=linux-tip-commits@vger.kernel.org \
    --cc=mhiramat@kernel.org \
    --cc=mingo@kernel.org \
    --cc=mtosatti@redhat.com \
    --cc=peterz@infradead.org \
    --cc=rostedt@goodmis.org \
    --cc=swood@redhat.com \
    --cc=tglx@linutronix.de \
    --cc=torvalds@linux-foundation.org \
    --cc=williams@redhat.com \
    /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.