aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--tools/include/xen-sys/Linux/privcmd.h3
-rw-r--r--tools/libxc/xc_linux_osdep.c10
-rw-r--r--xen/include/public/domctl.h1
3 files changed, 8 insertions, 6 deletions
diff --git a/tools/include/xen-sys/Linux/privcmd.h b/tools/include/xen-sys/Linux/privcmd.h
index d35aac9baa..5be860af39 100644
--- a/tools/include/xen-sys/Linux/privcmd.h
+++ b/tools/include/xen-sys/Linux/privcmd.h
@@ -64,6 +64,9 @@ typedef struct privcmd_mmapbatch {
xen_pfn_t __user *arr; /* array of mfns - top nibble set on err */
} privcmd_mmapbatch_t;
+#define PRIVCMD_MMAPBATCH_MFN_ERROR 0xf0000000U
+#define PRIVCMD_MMAPBATCH_PAGED_ERROR 0x80000000U
+
typedef struct privcmd_mmapbatch_v2 {
unsigned int num; /* number of pages to populate */
domid_t dom; /* target domain */
diff --git a/tools/libxc/xc_linux_osdep.c b/tools/libxc/xc_linux_osdep.c
index 787e74285e..ca545d8228 100644
--- a/tools/libxc/xc_linux_osdep.c
+++ b/tools/libxc/xc_linux_osdep.c
@@ -129,7 +129,7 @@ static int xc_map_foreign_batch_single(int fd, uint32_t dom,
do
{
- *mfn ^= XEN_DOMCTL_PFINFO_PAGEDTAB;
+ *mfn ^= PRIVCMD_MMAPBATCH_PAGED_ERROR;
usleep(100);
rc = ioctl(fd, IOCTL_PRIVCMD_MMAPBATCH, &ioctlx);
}
@@ -166,8 +166,8 @@ static void *linux_privcmd_map_foreign_batch(xc_interface *xch, xc_osdep_handle
for ( i = 0; i < num; i++ )
{
- if ( (arr[i] & XEN_DOMCTL_PFINFO_LTAB_MASK) ==
- XEN_DOMCTL_PFINFO_PAGEDTAB )
+ if ( (arr[i] & PRIVCMD_MMAPBATCH_MFN_ERROR) ==
+ PRIVCMD_MMAPBATCH_PAGED_ERROR )
{
unsigned long paged_addr = (unsigned long)addr + (i << XC_PAGE_SHIFT);
rc = xc_map_foreign_batch_single(fd, dom, &arr[i],
@@ -323,12 +323,12 @@ static void *linux_privcmd_map_foreign_bulk(xc_interface *xch, xc_osdep_handle h
default:
err[i] = -EINVAL;
continue;
- case XEN_DOMCTL_PFINFO_PAGEDTAB:
+ case PRIVCMD_MMAPBATCH_PAGED_ERROR:
if ( rc != -ENOENT )
{
err[i] = rc ?: -EINVAL;
continue;
- }
+ }
rc = xc_map_foreign_batch_single(fd, dom, pfn + i,
(unsigned long)addr + ((unsigned long)i<<XC_PAGE_SHIFT));
if ( rc < 0 )
diff --git a/xen/include/public/domctl.h b/xen/include/public/domctl.h
index f2409ec76c..7c0f23df2e 100644
--- a/xen/include/public/domctl.h
+++ b/xen/include/public/domctl.h
@@ -136,7 +136,6 @@ DEFINE_XEN_GUEST_HANDLE(xen_domctl_getmemlist_t);
#define XEN_DOMCTL_PFINFO_LPINTAB (0x1U<<31)
#define XEN_DOMCTL_PFINFO_XTAB (0xfU<<28) /* invalid page */
#define XEN_DOMCTL_PFINFO_XALLOC (0xeU<<28) /* allocate-only page */
-#define XEN_DOMCTL_PFINFO_PAGEDTAB (0x8U<<28)
#define XEN_DOMCTL_PFINFO_LTAB_MASK (0xfU<<28)
struct xen_domctl_getpageframeinfo {