summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKevin Hao <haokexin@gmail.com>2016-07-23 14:42:37 +0530
committerMichael Ellerman <mpe@ellerman.id.au>2016-08-01 11:15:01 +1000
commite3f91083facb792dc8d8fd0a59639e4d6e7c0c8f (patch)
treec8afe09d68a86f86bb04946d7d822af5f3bed121
parentb8f1b4f8606b40b478072fb551f79e2984d44fad (diff)
downloadlinux-e3f91083facb792dc8d8fd0a59639e4d6e7c0c8f.tar.gz
linux-e3f91083facb792dc8d8fd0a59639e4d6e7c0c8f.tar.bz2
linux-e3f91083facb792dc8d8fd0a59639e4d6e7c0c8f.zip
jump_label: Make it possible for arches to invoke jump_label_init() earlier
Some arches (powerpc at least) would like to invoke jump_label_init() much earlier in boot. So check static_key_initialized in order to make sure this function runs only once. LGTM-by: Ingo (http://marc.info/?l=linux-kernel&m=144049104329961&w=2) Signed-off-by: Kevin Hao <haokexin@gmail.com> Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
-rw-r--r--kernel/jump_label.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/kernel/jump_label.c b/kernel/jump_label.c
index 0dbea887d625..2d693be967df 100644
--- a/kernel/jump_label.c
+++ b/kernel/jump_label.c
@@ -235,6 +235,9 @@ void __init jump_label_init(void)
struct static_key *key = NULL;
struct jump_entry *iter;
+ if (static_key_initialized)
+ return;
+
jump_label_lock();
jump_label_sort_entries(iter_start, iter_stop);