[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] Rearrange code in __start_xen() to work around internal



# HG changeset patch
# User kaf24@xxxxxxxxxxxxxxxxxxxx
# Node ID 37ee6b4b409e67001d2c3054e9300bc08bc49fa9
# Parent  7dc610b0d1bad1e85e06ea6b4ca5026d0f7218fd
Rearrange code in __start_xen() to work around internal
compiler error in x86/64 gcc.
Signed-off-by: Keir Fraser <keir@xxxxxxxxxxxxx>

diff -r 7dc610b0d1ba -r 37ee6b4b409e xen/arch/x86/setup.c
--- a/xen/arch/x86/setup.c      Fri Aug 12 07:21:45 2005
+++ b/xen/arch/x86/setup.c      Fri Aug 12 09:14:02 2005
@@ -336,25 +336,24 @@
     /* Find a large enough RAM extent to stash the DOM0 modules. */
     for ( i = 0; ; i++ )
     {
-        if ( (e820.map[i].type == E820_RAM) &&
-             (e820.map[i].size >= modules_length) &&
-             ((e820.map[i].addr + e820.map[i].size) >=
-              (xenheap_phys_end + modules_length)) )
-        {
-            /* Stash as near as possible to the beginning of the RAM extent. */
-            initial_images_start = e820.map[i].addr;
-            if ( initial_images_start < xenheap_phys_end )
-                initial_images_start = xenheap_phys_end;
-            initial_images_end = initial_images_start + modules_length;
-            break;
-        }
-
         if ( i == e820.nr_map )
         {
             printk("Not enough memory to stash the DOM0 kernel image.\n");
             for ( ; ; ) ;
         }
-    }
+        
+        if ( (e820.map[i].type == E820_RAM) &&
+             (e820.map[i].size >= modules_length) &&
+             ((e820.map[i].addr + e820.map[i].size) >=
+              (xenheap_phys_end + modules_length)) )
+            break;
+    }
+
+    /* Stash as near as possible to the beginning of the RAM extent. */
+    initial_images_start = e820.map[i].addr;
+    if ( initial_images_start < xenheap_phys_end )
+        initial_images_start = xenheap_phys_end;
+    initial_images_end = initial_images_start + modules_length;
 
 #if defined(CONFIG_X86_32)
     memmove((void *)initial_images_start,  /* use low mapping */

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.