[LINUX] Correctly return the results of {event_channel_op,physdev_op}_compat
authorIan.Campbell@xensource.com <Ian.Campbell@xensource.com>
Tue, 13 Jun 2006 09:14:20 +0000 (10:14 +0100)
committerIan.Campbell@xensource.com <Ian.Campbell@xensource.com>
Tue, 13 Jun 2006 09:14:20 +0000 (10:14 +0100)
Signed-off-by: Ian Campbell <ian.campbell@xensource.com>
linux-2.6-xen-sparse/include/asm-i386/mach-xen/asm/hypercall.h
linux-2.6-xen-sparse/include/asm-x86_64/mach-xen/asm/hypercall.h

index 767d293184305535086f86512caedbb8698f12a3..7de10137f1e6bb973d67f9c3d856da7079b45684 100644 (file)
@@ -255,6 +255,7 @@ HYPERVISOR_event_channel_op(
                op.cmd = cmd;
                memcpy(&op.u, arg, sizeof(op.u));
                rc = _hypercall1(int, event_channel_op_compat, &op);
+               memcpy(arg, &op.u, sizeof(op.u));
        }
        return rc;
 }
@@ -290,6 +291,7 @@ HYPERVISOR_physdev_op(
                op.cmd = cmd;
                memcpy(&op.u, arg, sizeof(op.u));
                rc = _hypercall1(int, physdev_op_compat, &op);
+               memcpy(arg, &op.u, sizeof(op.u));
        }
        return rc;
 }
index 12d18d39dff05110985b23339c4a1457b15384a7..1bcc7901eaaccc7562ee166d3ae5459eff45efc1 100644 (file)
@@ -253,6 +253,7 @@ HYPERVISOR_event_channel_op(
                op.cmd = cmd;
                memcpy(&op.u, arg, sizeof(op.u));
                rc = _hypercall1(int, event_channel_op_compat, &op);
+               memcpy(arg, &op.u, sizeof(op.u));
        }
        return rc;
 }
@@ -288,6 +289,7 @@ HYPERVISOR_physdev_op(
                op.cmd = cmd;
                memcpy(&op.u, arg, sizeof(op.u));
                rc = _hypercall1(int, physdev_op_compat, &op);
+               memcpy(arg, &op.u, sizeof(op.u));
        }
        return rc;
 }