diff options
-rw-r--r-- | tools/include/xen-sys/Linux/privcmd.h | 3 | ||||
-rw-r--r-- | tools/libxc/xc_linux_osdep.c | 10 | ||||
-rw-r--r-- | xen/include/public/domctl.h | 1 |
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 { |