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>
This commit is contained in:
Keir Fraser committed 2009-01-26 23:36:59 +00:00
1 parent 6fc223da02
commit 3cadc0469d
1 file changed
+9
+9
View File
@@ -405,8 +405,17 @@ int arch_domain_create(struct domain *d, unsigned int domcr_flags)
if ( d->arch.ioport_caps == NULL )
goto fail;
#ifdef __i386__
if ( (d->shared_info = alloc_xenheap_page()) == NULL )
goto fail;
#else
pg = alloc_domheap_page(
NULL, MEMF_node(domain_to_node(d)) | MEMF_bits(32));
if ( pg == NULL )
goto fail;
pg->count_info |= PGC_xen_heap;
d->shared_info = page_to_virt(pg);
#endif
clear_page(d->shared_info);
share_xen_page_with_guest(
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.