static void jump_label_update(struct jump_label_key *key, int enable) { struct jump_entry *entry = key->entries; /* if there are no users, entry can be NULL */ if (entry) __jump_label_update(key, entry, enable); #ifdef CONFIG_MODULES __jump_label_mod_update(key, enable); #endif }
static void jump_label_update(struct static_key *key, int enable) { struct jump_entry *stop = __stop___jump_table; struct jump_entry *entry = jump_label_get_entries(key); #ifdef CONFIG_MODULES struct module *mod = __module_address((unsigned long)key); __jump_label_mod_update(key, enable); if (mod) stop = mod->jump_entries + mod->num_jump_entries; #endif if (entry) __jump_label_update(key, entry, stop, enable); }
static void jump_label_update(struct static_key *key) { struct jump_entry *stop = __stop___jump_table; struct jump_entry *entry = static_key_entries(key); #ifdef CONFIG_MODULES struct module *mod; __jump_label_mod_update(key); preempt_disable(); mod = __module_address((unsigned long)key); if (mod) stop = mod->jump_entries + mod->num_jump_entries; preempt_enable(); #endif /* if there are no users, entry can be NULL */ if (entry) __jump_label_update(key, entry, stop); }