diff options
Diffstat (limited to 'kernel/jump_label.c')
| -rw-r--r-- | kernel/jump_label.c | 41 | 
1 files changed, 6 insertions, 35 deletions
| diff --git a/kernel/jump_label.c b/kernel/jump_label.c index b156e152d6b4..714ac4c3b556 100644 --- a/kernel/jump_label.c +++ b/kernel/jump_label.c @@ -332,17 +332,13 @@ static int __jump_label_text_reserved(struct jump_entry *iter_start,  	return 0;  } -/* - * Update code which is definitely not currently executing. - * Architectures which need heavyweight synchronization to modify - * running code can override this to make the non-live update case - * cheaper. - */ -void __weak __init_or_module arch_jump_label_transform_static(struct jump_entry *entry, -					    enum jump_label_type type) +#ifndef arch_jump_label_transform_static +static void arch_jump_label_transform_static(struct jump_entry *entry, +					     enum jump_label_type type)  { -	arch_jump_label_transform(entry, type); +	/* nothing to do on most architectures */  } +#endif  static inline struct jump_entry *static_key_entries(struct static_key *key)  { @@ -508,7 +504,7 @@ void __init jump_label_init(void)  #ifdef CONFIG_MODULES -static enum jump_label_type jump_label_init_type(struct jump_entry *entry) +enum jump_label_type jump_label_init_type(struct jump_entry *entry)  {  	struct static_key *key = jump_entry_key(entry);  	bool type = static_key_type(key); @@ -596,31 +592,6 @@ static void __jump_label_mod_update(struct static_key *key)  	}  } -/*** - * apply_jump_label_nops - patch module jump labels with arch_get_jump_label_nop() - * @mod: module to patch - * - * Allow for run-time selection of the optimal nops. Before the module - * loads patch these with arch_get_jump_label_nop(), which is specified by - * the arch specific jump label code. - */ -void jump_label_apply_nops(struct module *mod) -{ -	struct jump_entry *iter_start = mod->jump_entries; -	struct jump_entry *iter_stop = iter_start + mod->num_jump_entries; -	struct jump_entry *iter; - -	/* if the module doesn't have jump label entries, just return */ -	if (iter_start == iter_stop) -		return; - -	for (iter = iter_start; iter < iter_stop; iter++) { -		/* Only write NOPs for arch_branch_static(). */ -		if (jump_label_init_type(iter) == JUMP_LABEL_NOP) -			arch_jump_label_transform_static(iter, JUMP_LABEL_NOP); -	} -} -  static int jump_label_add_module(struct module *mod)  {  	struct jump_entry *iter_start = mod->jump_entries; |