diff options
Diffstat (limited to 'arch/x86/kernel/alternative.c')
-rw-r--r-- | arch/x86/kernel/alternative.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/arch/x86/kernel/alternative.c b/arch/x86/kernel/alternative.c index 11b03d3c6fda..dff1c9e1c2ee 100644 --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c | |||
@@ -415,9 +415,6 @@ void __init alternative_instructions(void) | |||
415 | alternatives_smp_unlock(__smp_locks, __smp_locks_end, | 415 | alternatives_smp_unlock(__smp_locks, __smp_locks_end, |
416 | _text, _etext); | 416 | _text, _etext); |
417 | } | 417 | } |
418 | free_init_pages("SMP alternatives", | ||
419 | (unsigned long)__smp_locks, | ||
420 | (unsigned long)__smp_locks_end); | ||
421 | } else { | 418 | } else { |
422 | alternatives_smp_module_add(NULL, "core kernel", | 419 | alternatives_smp_module_add(NULL, "core kernel", |
423 | __smp_locks, __smp_locks_end, | 420 | __smp_locks, __smp_locks_end, |
@@ -428,6 +425,11 @@ void __init alternative_instructions(void) | |||
428 | apply_paravirt(__parainstructions, __parainstructions_end); | 425 | apply_paravirt(__parainstructions, __parainstructions_end); |
429 | local_irq_restore(flags); | 426 | local_irq_restore(flags); |
430 | 427 | ||
428 | if (smp_alt_once) | ||
429 | free_init_pages("SMP alternatives", | ||
430 | (unsigned long)__smp_locks, | ||
431 | (unsigned long)__smp_locks_end); | ||
432 | |||
431 | restart_nmi(); | 433 | restart_nmi(); |
432 | #ifdef CONFIG_X86_MCE | 434 | #ifdef CONFIG_X86_MCE |
433 | restart_mce(); | 435 | restart_mce(); |