Patch to arch/x86/mm/init_32.c causes EFI-32 machines to reboot early in startup

Peter Jones pjones at redhat.com
Tue Jul 1 20:41:06 UTC 2008


Hi.  Using git bisect, I've discovered that commit
61165d7a035f6571c7576e7f51e7230157724c8d is the cause of 32-bit Intel 
Mac machines to reboot very early during startup when booting with EFI 
(but not if using BIOS).  The last change in that commit is:

diff --git a/arch/x86/mm/init_32.c b/arch/x86/mm/init_32.c
index de236e4..ec30d10 100644
--- a/arch/x86/mm/init_32.c
+++ b/arch/x86/mm/init_32.c
@@ -438,8 +438,6 @@ void zap_low_mappings(void)
  {
         int i;

-       save_pg_dir();
-
         /*
          * Zap initial low-memory mappings.
          *
@@ -663,16 +661,8 @@ void __init mem_init(void)
                 test_wp_bit();

         cpa_init();
-
-       /*
-        * Subtle. SMP is doing it's boot stuff late (because it has to
-        * fork idle threads) - but it also needs low mappings for the
-        * protected-mode entry to work. We zap these entries only after
-        * the WP-bit has been tested.
-        */
-#ifndef CONFIG_SMP
+       save_pg_dir();
         zap_low_mappings();
-#endif
  }

  #ifdef CONFIG_MEMORY_HOTPLUG


If I put the "#ifndef CONFIG_SMP" back, it no longer fails to boot. 
What can I do to help debug this and get it fixed?

-- 
   Peter




More information about the kernel mailing list