All of lore.kernel.org
 help / color / mirror / Atom feed
From: Daniel Bristot de Oliveira <bristot@redhat.com>
To: linux-kernel@vger.kernel.org, x86@kernel.org
Cc: Thomas Gleixner <tglx@linutronix.de>,
	Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
	"H. Peter Anvin" <hpa@zytor.com>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	Pavel Tatashin <pasha.tatashin@oracle.com>,
	Masami Hiramatsu <mhiramat@kernel.org>,
	"Steven Rostedt (VMware)" <rostedt@goodmis.org>,
	Zhou Chengming <zhouchengming1@huawei.com>,
	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>
Subject: [RFC PATCH 1/6] jump_label: Add for_each_label_entry helper
Date: Mon,  8 Oct 2018 14:53:00 +0200	[thread overview]
Message-ID: <f2bfbd846f05fa10701bac9fde44d0d5bb736c4d.1539001620.git.bristot@redhat.com> (raw)
In-Reply-To: <cover.1539001620.git.bristot@redhat.com>

This patch adds the helper:
	for_each_label_entry(key, entry, stop)

For the "for each jump label entry" for defined as:
	for (; (entry < stop) && (jump_entry_key(entry) == key); entry++)

Simplifying the reading and usage.

Signed-off-by: Daniel Bristot de Oliveira <bristot@redhat.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Pavel Tatashin <pasha.tatashin@oracle.com>
Cc: Masami Hiramatsu <mhiramat@kernel.org>
Cc: "Steven Rostedt (VMware)" <rostedt@goodmis.org>
Cc: Zhou Chengming <zhouchengming1@huawei.com>
Cc: Jiri Kosina <jkosina@suse.cz>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: "Peter Zijlstra (Intel)" <peterz@infradead.org>
Cc: Chris von Recklinghausen <crecklin@redhat.com>
Cc: Jason Baron <jbaron@akamai.com>
Cc: Scott Wood <swood@redhat.com>
Cc: Marcelo Tosatti <mtosatti@redhat.com>
Cc: Clark Williams <williams@redhat.com>
Cc: x86@kernel.org
Cc: linux-kernel@vger.kernel.org
---
 include/linux/jump_label.h | 3 +++
 kernel/jump_label.c        | 2 +-
 2 files changed, 4 insertions(+), 1 deletion(-)

diff --git a/include/linux/jump_label.h b/include/linux/jump_label.h
index 1a0b6f17a5d6..cd3bed880ca0 100644
--- a/include/linux/jump_label.h
+++ b/include/linux/jump_label.h
@@ -170,6 +170,9 @@ extern void static_key_disable(struct static_key *key);
 extern void static_key_enable_cpuslocked(struct static_key *key);
 extern void static_key_disable_cpuslocked(struct static_key *key);
 
+#define for_each_label_entry(key, entry, stop)				  \
+	for (; (entry < stop) && (jump_entry_key(entry) == key); entry++)
+
 /*
  * We should be using ATOMIC_INIT() for initializing .enabled, but
  * the inclusion of atomic.h is problematic for inclusion of jump_label.h
diff --git a/kernel/jump_label.c b/kernel/jump_label.c
index 2e62503bea0d..e853916a3b46 100644
--- a/kernel/jump_label.c
+++ b/kernel/jump_label.c
@@ -365,7 +365,7 @@ static void __jump_label_update(struct static_key *key,
 				struct jump_entry *entry,
 				struct jump_entry *stop)
 {
-	for (; (entry < stop) && (jump_entry_key(entry) == key); entry++) {
+	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.
-- 
2.17.1


  reply	other threads:[~2018-10-08 12:53 UTC|newest]

Thread overview: 11+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-10-08 12:52 [RFC PATCH 0/6] x86/jump_label: Bound IPIs sent when updating a static key Daniel Bristot de Oliveira
2018-10-08 12:53 ` Daniel Bristot de Oliveira [this message]
2018-10-08 12:53 ` [RFC PATCH 2/6] jump_label: Add the jump_label_can_update_check() helper Daniel Bristot de Oliveira
2018-10-08 12:53 ` [RFC PATCH 3/6] x86/jump_label: Move checking code away from __jump_label_transform() Daniel Bristot de Oliveira
2018-10-08 12:53 ` [RFC PATCH 4/6] x86/jump_label: Add __jump_label_set_jump_code() helper Daniel Bristot de Oliveira
2018-10-08 12:53 ` [RFC PATCH 5/6] x86/alternative: Split text_poke_bp() into tree steps Daniel Bristot de Oliveira
2018-10-08 12:53 ` [RFC PATCH 6/6] x86/jump_label,x86/alternatives: Batch jump label transformations Daniel Bristot de Oliveira
2018-10-08 14:33   ` Jason Baron
2018-10-08 20:22     ` Daniel Bristot de Oliveira
2018-10-10 20:17   ` Steven Rostedt
2018-10-11  7:28     ` 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=f2bfbd846f05fa10701bac9fde44d0d5bb736c4d.1539001620.git.bristot@redhat.com \
    --to=bristot@redhat.com \
    --cc=bp@alien8.de \
    --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=pasha.tatashin@oracle.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 \
    --cc=zhouchengming1@huawei.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.