ia64/xen-unstable

changeset 19096:d7f524bf90b0

x86_64: shared_info must be allocated below 4GB as it is advertised to
32-bit guests via a 32-bit machine address field in start_info.

Signed-off-by: Keir Fraser <keir.fraser@citrix.com>
author Keir Fraser <keir.fraser@citrix.com>
date Mon Jan 26 23:36:59 2009 +0000 (2009-01-26)
parents 6b10d97d6fd4
children 70793b2ff15e
files xen/arch/x86/domain.c
line diff
     1.1 --- a/xen/arch/x86/domain.c	Mon Jan 26 23:35:47 2009 +0000
     1.2 +++ b/xen/arch/x86/domain.c	Mon Jan 26 23:36:59 2009 +0000
     1.3 @@ -405,8 +405,17 @@ int arch_domain_create(struct domain *d,
     1.4          if ( d->arch.ioport_caps == NULL )
     1.5              goto fail;
     1.6  
     1.7 +#ifdef __i386__
     1.8          if ( (d->shared_info = alloc_xenheap_page()) == NULL )
     1.9              goto fail;
    1.10 +#else
    1.11 +        pg = alloc_domheap_page(
    1.12 +            NULL, MEMF_node(domain_to_node(d)) | MEMF_bits(32));
    1.13 +        if ( pg == NULL )
    1.14 +            goto fail;
    1.15 +        pg->count_info |= PGC_xen_heap;
    1.16 +        d->shared_info = page_to_virt(pg);
    1.17 +#endif
    1.18  
    1.19          clear_page(d->shared_info);
    1.20          share_xen_page_with_guest(