# HG changeset patch # User yamahata@xxxxxxxxxxxxx # Date 1165484902 -32400 # Node ID cf30ad63c2147a31c90ab8b14ef166771f31c976 # Parent 1d32fb45e08fe9e8ebbc684ae93f71c6b5fd1495 make XEN_DOMCTL_getdomaininfo return shared_info_frame in gmfn. not mfn. foreign domain page mapping semantic was changed so that it requires gmfn. So to map foreign domain's shared_info, gmfn is required. PATCHNAME: xen_domctl_getdomaininfo_shared_info_gmfn Signed-off-by: Isaku Yamahata diff -r 1d32fb45e08f -r cf30ad63c214 xen/common/domctl.c --- a/xen/common/domctl.c Wed Dec 06 16:33:48 2006 +0000 +++ b/xen/common/domctl.c Thu Dec 07 18:48:22 2006 +0900 @@ -18,6 +18,7 @@ #include #include #include +#include #include #include #include @@ -127,6 +128,8 @@ void getdomaininfo(struct domain *d, str info->tot_pages = d->tot_pages; info->max_pages = d->max_pages; info->shared_info_frame = __pa(d->shared_info) >> PAGE_SHIFT; + if ( shadow_mode_translate(d) ) + info->shared_info_frame = get_gpfn_from_mfn(info->shared_info_frame); memcpy(info->handle, d->handle, sizeof(xen_domain_handle_t)); } diff -r 1d32fb45e08f -r cf30ad63c214 xen/include/public/domctl.h --- a/xen/include/public/domctl.h Wed Dec 06 16:33:48 2006 +0000 +++ b/xen/include/public/domctl.h Thu Dec 07 18:48:22 2006 +0900 @@ -93,7 +93,7 @@ struct xen_domctl_getdomaininfo { uint32_t flags; /* XEN_DOMINF_* */ uint64_t tot_pages; uint64_t max_pages; - uint64_t shared_info_frame; /* MFN of shared_info struct */ + uint64_t shared_info_frame; /* GMFN of shared_info struct */ uint64_t cpu_time; uint32_t nr_online_vcpus; /* Number of VCPUs currently online. */ uint32_t max_vcpu_id; /* Maximum VCPUID in use by this domain. */