ia64/xen-unstable
changeset 6134:37ee6b4b409e
Rearrange code in __start_xen() to work around internal
compiler error in x86/64 gcc.
Signed-off-by: Keir Fraser <keir@xensource.com>
compiler error in x86/64 gcc.
Signed-off-by: Keir Fraser <keir@xensource.com>
author | kaf24@firebug.cl.cam.ac.uk |
---|---|
date | Fri Aug 12 09:14:02 2005 +0000 (2005-08-12) |
parents | 7dc610b0d1ba |
children | f6d6d17eaeb5 b7ee6eb5000b |
files | xen/arch/x86/setup.c |
line diff
1.1 --- a/xen/arch/x86/setup.c Fri Aug 12 07:21:45 2005 +0000 1.2 +++ b/xen/arch/x86/setup.c Fri Aug 12 09:14:02 2005 +0000 1.3 @@ -336,26 +336,25 @@ void __init __start_xen(multiboot_info_t 1.4 /* Find a large enough RAM extent to stash the DOM0 modules. */ 1.5 for ( i = 0; ; i++ ) 1.6 { 1.7 - if ( (e820.map[i].type == E820_RAM) && 1.8 - (e820.map[i].size >= modules_length) && 1.9 - ((e820.map[i].addr + e820.map[i].size) >= 1.10 - (xenheap_phys_end + modules_length)) ) 1.11 - { 1.12 - /* Stash as near as possible to the beginning of the RAM extent. */ 1.13 - initial_images_start = e820.map[i].addr; 1.14 - if ( initial_images_start < xenheap_phys_end ) 1.15 - initial_images_start = xenheap_phys_end; 1.16 - initial_images_end = initial_images_start + modules_length; 1.17 - break; 1.18 - } 1.19 - 1.20 if ( i == e820.nr_map ) 1.21 { 1.22 printk("Not enough memory to stash the DOM0 kernel image.\n"); 1.23 for ( ; ; ) ; 1.24 } 1.25 + 1.26 + if ( (e820.map[i].type == E820_RAM) && 1.27 + (e820.map[i].size >= modules_length) && 1.28 + ((e820.map[i].addr + e820.map[i].size) >= 1.29 + (xenheap_phys_end + modules_length)) ) 1.30 + break; 1.31 } 1.32 1.33 + /* Stash as near as possible to the beginning of the RAM extent. */ 1.34 + initial_images_start = e820.map[i].addr; 1.35 + if ( initial_images_start < xenheap_phys_end ) 1.36 + initial_images_start = xenheap_phys_end; 1.37 + initial_images_end = initial_images_start + modules_length; 1.38 + 1.39 #if defined(CONFIG_X86_32) 1.40 memmove((void *)initial_images_start, /* use low mapping */ 1.41 (void *)mod[0].mod_start, /* use low mapping */