diff options
-rw-r--r-- | arch/i386/kernel/alternative.c | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/arch/i386/kernel/alternative.c b/arch/i386/kernel/alternative.c index 28ab80649764..583c238e17fb 100644 --- a/arch/i386/kernel/alternative.c +++ b/arch/i386/kernel/alternative.c | |||
@@ -344,6 +344,7 @@ void alternatives_smp_switch(int smp) | |||
344 | 344 | ||
345 | void __init alternative_instructions(void) | 345 | void __init alternative_instructions(void) |
346 | { | 346 | { |
347 | unsigned long flags; | ||
347 | if (no_replacement) { | 348 | if (no_replacement) { |
348 | printk(KERN_INFO "(SMP-)alternatives turned off\n"); | 349 | printk(KERN_INFO "(SMP-)alternatives turned off\n"); |
349 | free_init_pages("SMP alternatives", | 350 | free_init_pages("SMP alternatives", |
@@ -351,6 +352,8 @@ void __init alternative_instructions(void) | |||
351 | (unsigned long)__smp_alt_end); | 352 | (unsigned long)__smp_alt_end); |
352 | return; | 353 | return; |
353 | } | 354 | } |
355 | |||
356 | local_irq_save(flags); | ||
354 | apply_alternatives(__alt_instructions, __alt_instructions_end); | 357 | apply_alternatives(__alt_instructions, __alt_instructions_end); |
355 | 358 | ||
356 | /* switch to patch-once-at-boottime-only mode and free the | 359 | /* switch to patch-once-at-boottime-only mode and free the |
@@ -386,4 +389,5 @@ void __init alternative_instructions(void) | |||
386 | alternatives_smp_switch(0); | 389 | alternatives_smp_switch(0); |
387 | } | 390 | } |
388 | #endif | 391 | #endif |
392 | local_irq_restore(flags); | ||
389 | } | 393 | } |