Comment 5 for bug 83716

Revision history for this message
Michael (michaeljt) wrote :

Included below is the information you requested. uname -a says:

Linux test-desktop 2.6.17-10-generic #2 SMP Tue Dec 5 22:28:26 UTC 2006 i686 GNU/Linux

Note that:

1) The bug can be worked around by specifying the "noreplacement" kernel option
2) The bug has also been backported to the Dapper SMP kernel, but without the workaround
3) As I said, this is the patch to arch/i386/kernel/alternative.c which fixes the problem:

 void __init alternative_instructions(void)
 {
+ unsigned long flags;
  if (no_replacement) {
   printk(KERN_INFO "(SMP-)alternatives turned off\n");
   free_init_pages("SMP alternatives",
@@ -396,6 +397,8 @@ void __init alternative_instructions(voi
     (unsigned long)__smp_alt_end);
   return;
  }
+
+ local_irq_save(flags);
  apply_alternatives(__alt_instructions, __alt_instructions_end);

  /* switch to patch-once-at-boottime-only mode and free the
@@ -433,4 +436,5 @@ void __init alternative_instructions(voi
  alternatives_smp_switch(0);
 }
#endif
-}
+ local_irq_restore(flags);
+}