aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/alternative.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/x86/kernel/alternative.c')
-rw-r--r--arch/x86/kernel/alternative.c16
1 files changed, 16 insertions, 0 deletions
diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c
index de7353c0ce9c..3c13284ff86d 100644
--- a/arch/x86/kernel/alternative.c
+++ b/arch/x86/kernel/alternative.c
@@ -390,6 +390,22 @@ void alternatives_smp_switch(int smp)
390 mutex_unlock(&smp_alt); 390 mutex_unlock(&smp_alt);
391} 391}
392 392
393/* Return 1 if the address range is reserved for smp-alternatives */
394int alternatives_text_reserved(void *start, void *end)
395{
396 struct smp_alt_module *mod;
397 u8 **ptr;
398
399 list_for_each_entry(mod, &smp_alt_modules, next) {
400 if (mod->text > end || mod->text_end < start)
401 continue;
402 for (ptr = mod->locks; ptr < mod->locks_end; ptr++)
403 if (start <= *ptr && end >= *ptr)
404 return 1;
405 }
406
407 return 0;
408}
393#endif 409#endif
394 410
395#ifdef CONFIG_PARAVIRT 411#ifdef CONFIG_PARAVIRT