[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
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |