diff options
Diffstat (limited to 'kernel/jump_label.c')
| -rw-r--r-- | kernel/jump_label.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/kernel/jump_label.c b/kernel/jump_label.c index 297a9247a3b3..9019f15deab2 100644 --- a/kernel/jump_label.c +++ b/kernel/jump_label.c | |||
| @@ -58,6 +58,7 @@ static void jump_label_update(struct static_key *key, int enable); | |||
| 58 | 58 | ||
| 59 | void static_key_slow_inc(struct static_key *key) | 59 | void static_key_slow_inc(struct static_key *key) |
| 60 | { | 60 | { |
| 61 | STATIC_KEY_CHECK_USE(); | ||
| 61 | if (atomic_inc_not_zero(&key->enabled)) | 62 | if (atomic_inc_not_zero(&key->enabled)) |
| 62 | return; | 63 | return; |
| 63 | 64 | ||
| @@ -103,12 +104,14 @@ static void jump_label_update_timeout(struct work_struct *work) | |||
| 103 | 104 | ||
| 104 | void static_key_slow_dec(struct static_key *key) | 105 | void static_key_slow_dec(struct static_key *key) |
| 105 | { | 106 | { |
| 107 | STATIC_KEY_CHECK_USE(); | ||
| 106 | __static_key_slow_dec(key, 0, NULL); | 108 | __static_key_slow_dec(key, 0, NULL); |
| 107 | } | 109 | } |
| 108 | EXPORT_SYMBOL_GPL(static_key_slow_dec); | 110 | EXPORT_SYMBOL_GPL(static_key_slow_dec); |
| 109 | 111 | ||
| 110 | void static_key_slow_dec_deferred(struct static_key_deferred *key) | 112 | void static_key_slow_dec_deferred(struct static_key_deferred *key) |
| 111 | { | 113 | { |
| 114 | STATIC_KEY_CHECK_USE(); | ||
| 112 | __static_key_slow_dec(&key->key, key->timeout, &key->work); | 115 | __static_key_slow_dec(&key->key, key->timeout, &key->work); |
| 113 | } | 116 | } |
| 114 | EXPORT_SYMBOL_GPL(static_key_slow_dec_deferred); | 117 | EXPORT_SYMBOL_GPL(static_key_slow_dec_deferred); |
| @@ -116,6 +119,7 @@ EXPORT_SYMBOL_GPL(static_key_slow_dec_deferred); | |||
| 116 | void jump_label_rate_limit(struct static_key_deferred *key, | 119 | void jump_label_rate_limit(struct static_key_deferred *key, |
| 117 | unsigned long rl) | 120 | unsigned long rl) |
| 118 | { | 121 | { |
| 122 | STATIC_KEY_CHECK_USE(); | ||
| 119 | key->timeout = rl; | 123 | key->timeout = rl; |
| 120 | INIT_DELAYED_WORK(&key->work, jump_label_update_timeout); | 124 | INIT_DELAYED_WORK(&key->work, jump_label_update_timeout); |
| 121 | } | 125 | } |
| @@ -212,6 +216,7 @@ void __init jump_label_init(void) | |||
| 212 | key->next = NULL; | 216 | key->next = NULL; |
| 213 | #endif | 217 | #endif |
| 214 | } | 218 | } |
| 219 | static_key_initialized = true; | ||
| 215 | jump_label_unlock(); | 220 | jump_label_unlock(); |
| 216 | } | 221 | } |
| 217 | 222 | ||
