diff options
author | Stefan Schmidt <stefan@datenfreihafen.org> | 2021-02-24 13:36:58 +0100 |
---|---|---|
committer | Stefan Schmidt <stefan@datenfreihafen.org> | 2021-02-24 13:36:58 +0100 |
commit | cdd38c5f1ce4398ec58fec95904b75824daab7b5 (patch) | |
tree | 639cf51fe8ee120a13e61b13d448aeaf4d044c74 /kernel/jump_label.c | |
parent | 04052a318fb93491f1f3b4d282cb806f588e9326 (diff) | |
parent | fcb3007371e1a4afb03280af1b336a83287fe115 (diff) | |
download | linux-cdd38c5f1ce4398ec58fec95904b75824daab7b5.tar.bz2 |
Merge remote-tracking branch 'net/master'
Diffstat (limited to 'kernel/jump_label.c')
-rw-r--r-- | kernel/jump_label.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/kernel/jump_label.c b/kernel/jump_label.c index 015ef903ce8c..c6a39d662935 100644 --- a/kernel/jump_label.c +++ b/kernel/jump_label.c @@ -793,6 +793,7 @@ int jump_label_text_reserved(void *start, void *end) static void jump_label_update(struct static_key *key) { struct jump_entry *stop = __stop___jump_table; + bool init = system_state < SYSTEM_RUNNING; struct jump_entry *entry; #ifdef CONFIG_MODULES struct module *mod; @@ -804,15 +805,16 @@ static void jump_label_update(struct static_key *key) preempt_disable(); mod = __module_address((unsigned long)key); - if (mod) + if (mod) { stop = mod->jump_entries + mod->num_jump_entries; + init = mod->state == MODULE_STATE_COMING; + } preempt_enable(); #endif entry = static_key_entries(key); /* if there are no users, entry can be NULL */ if (entry) - __jump_label_update(key, entry, stop, - system_state < SYSTEM_RUNNING); + __jump_label_update(key, entry, stop, init); } #ifdef CONFIG_STATIC_KEYS_SELFTEST |