ia64/xen-unstable

changeset 3465:023c30e91254

bitkeeper revision 1.1159.224.1 (41ee68d4iOEoyHdApN-MaOPPSb1xKg)

Merge scramble.cl.cam.ac.uk:/local/scratch/kaf24/xen-2.0-testing.bk
into scramble.cl.cam.ac.uk:/local/scratch/kaf24/xen-unstable.bk
author kaf24@scramble.cl.cam.ac.uk
date Wed Jan 19 14:04:04 2005 +0000 (2005-01-19)
parents 1f6bfd28d0c6 af362b7301a0
children 9e77c2678efa 50402a6cc3d8
files xen/arch/x86/e820.c
line diff
     1.1 --- a/xen/arch/x86/e820.c	Wed Jan 19 08:53:39 2005 +0000
     1.2 +++ b/xen/arch/x86/e820.c	Wed Jan 19 14:04:04 2005 +0000
     1.3 @@ -309,8 +309,33 @@ static void __init machine_specific_memo
     1.4      struct e820entry *raw, int raw_nr)
     1.5  {
     1.6      char nr = (char)raw_nr;
     1.7 +    int i;
     1.8 +
     1.9      sanitize_e820_map(raw, &nr);
    1.10 +
    1.11      (void)copy_e820_map(raw, nr);
    1.12 +
    1.13 +#ifdef __i386__
    1.14 +    /* 32-bit systems restricted to a 4GB physical memory map. */
    1.15 +    for ( i = 0; i < e820.nr_map; i++ )
    1.16 +    {
    1.17 +        if ( (e820.map[i].addr + e820.map[i].size) <= 0x100000000ULL )
    1.18 +            continue;
    1.19 +        printk("WARNING: Only the first 4GB of the physical memory map "
    1.20 +               "can be accessed\n"
    1.21 +               "         by Xen in 32-bit mode. "
    1.22 +               "Truncating the memory map...\n");
    1.23 +        if ( e820.map[i].addr >= 0x100000000ULL )
    1.24 +        {
    1.25 +            e820.nr_map = i;
    1.26 +        }
    1.27 +        else
    1.28 +        {
    1.29 +            e820.map[i].size = 0x100000000ULL - e820.map[i].addr;
    1.30 +            e820.nr_map = i + 1;                
    1.31 +        }            
    1.32 +    }
    1.33 +#endif
    1.34  }
    1.35  
    1.36  unsigned long init_e820(struct e820entry *raw, int raw_nr)