diff options
Diffstat (limited to 'arch/x86/kernel/callthunks.c')
| -rw-r--r-- | arch/x86/kernel/callthunks.c | 17 | 
1 files changed, 8 insertions, 9 deletions
diff --git a/arch/x86/kernel/callthunks.c b/arch/x86/kernel/callthunks.c index e9ad518a5003..64ad2ddea121 100644 --- a/arch/x86/kernel/callthunks.c +++ b/arch/x86/kernel/callthunks.c @@ -233,14 +233,13 @@ patch_call_sites(s32 *start, s32 *end, const struct core_text *ct)  }  static __init_or_module void -patch_paravirt_call_sites(struct paravirt_patch_site *start, -			  struct paravirt_patch_site *end, -			  const struct core_text *ct) +patch_alt_call_sites(struct alt_instr *start, struct alt_instr *end, +		     const struct core_text *ct)  { -	struct paravirt_patch_site *p; +	struct alt_instr *a; -	for (p = start; p < end; p++) -		patch_call(p->instr, ct); +	for (a = start; a < end; a++) +		patch_call((void *)&a->instr_offset + a->instr_offset, ct);  }  static __init_or_module void @@ -248,7 +247,7 @@ callthunks_setup(struct callthunk_sites *cs, const struct core_text *ct)  {  	prdbg("Patching call sites %s\n", ct->name);  	patch_call_sites(cs->call_start, cs->call_end, ct); -	patch_paravirt_call_sites(cs->pv_start, cs->pv_end, ct); +	patch_alt_call_sites(cs->alt_start, cs->alt_end, ct);  	prdbg("Patching call sites done%s\n", ct->name);  } @@ -257,8 +256,8 @@ void __init callthunks_patch_builtin_calls(void)  	struct callthunk_sites cs = {  		.call_start	= __call_sites,  		.call_end	= __call_sites_end, -		.pv_start	= __parainstructions, -		.pv_end		= __parainstructions_end +		.alt_start	= __alt_instructions, +		.alt_end	= __alt_instructions_end  	};  	if (!cpu_feature_enabled(X86_FEATURE_CALL_DEPTH))  |