x86/dmop: Fix compat_dm_op() ABI
authorAndrew Cooper <andrew.cooper3@citrix.com>
Tue, 31 Jan 2017 19:15:17 +0000 (19:15 +0000)
committerAndrew Cooper <andrew.cooper3@citrix.com>
Wed, 1 Feb 2017 16:50:39 +0000 (16:50 +0000)
The parameter to compat_dm_op() is a pointer to an array of
compat_dm_op_buf_t's in guest RAM.

Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
xen/arch/x86/hvm/dm.c
xen/include/xen/hypercall.h

index 6a722a5dc47608798ba650de6a8b6b6ec81a0322..2122c45a1218a1c4d757974818bfab81dc6eb232 100644 (file)
@@ -525,7 +525,7 @@ CHECK_dm_op_inject_msi;
 
 int compat_dm_op(domid_t domid,
                  unsigned int nr_bufs,
-                 COMPAT_HANDLE_PARAM(compat_dm_op_buf_t) bufs)
+                 XEN_GUEST_HANDLE_PARAM(void) bufs)
 {
     struct xen_dm_op_buf nat[MAX_NR_BUFS];
     unsigned int i;
@@ -538,7 +538,7 @@ int compat_dm_op(domid_t domid,
     {
         struct compat_dm_op_buf cmp;
 
-        if ( copy_from_compat_offset(&cmp, bufs, i, 1) )
+        if ( copy_from_guest_offset(&cmp, bufs, i, 1) )
             return -EFAULT;
 
 #define XLAT_dm_op_buf_HNDL_h(_d_, _s_) \
index 8d4824feff896d5e6dd53203fe03ededc7a51812..cc99aea57d59d5123d0046559781e26c79c4dc6d 100644 (file)
@@ -203,7 +203,7 @@ extern int
 compat_dm_op(
     domid_t domid,
     unsigned int nr_bufs,
-    COMPAT_HANDLE_PARAM(compat_dm_op_buf_t) bufs);
+    XEN_GUEST_HANDLE_PARAM(void) bufs);
 
 #endif