[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-changelog] [xen-unstable] [IA64] xencomm_privcmd_sched_op



# HG changeset patch
# User awilliam@xxxxxxxxxxx
# Node ID 49bf2381e009f00777cb85d0797eb5fbe6f74f15
# Parent  3f3a818d56f53f5dc3c970ed4959374f9be74b22
[IA64] xencomm_privcmd_sched_op

Necessary for reboot on VTi domains.

Signed-off-by: Kouya Shimura <kouya@xxxxxxxxxxxxxx>
---
 linux-2.6-xen-sparse/arch/ia64/xen/xcom_privcmd.c |   30 ++++++++++++++++++++++
 1 files changed, 30 insertions(+)

diff -r 3f3a818d56f5 -r 49bf2381e009 
linux-2.6-xen-sparse/arch/ia64/xen/xcom_privcmd.c
--- a/linux-2.6-xen-sparse/arch/ia64/xen/xcom_privcmd.c Wed Oct 04 22:11:34 
2006 -0600
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/xcom_privcmd.c Wed Oct 04 22:11:50 
2006 -0600
@@ -545,6 +545,34 @@ xencomm_privcmd_hvm_op(privcmd_hypercall
        return ret;
 }
 
+static int
+xencomm_privcmd_sched_op(privcmd_hypercall_t *hypercall)
+{
+       int cmd = hypercall->arg[0];
+       struct xencomm_handle *desc;
+       unsigned int argsize;
+       int ret;
+
+       switch (cmd) {
+       case SCHEDOP_remote_shutdown:
+               argsize = sizeof(sched_remote_shutdown_t);
+               break;
+       default:
+               printk("%s: unknown SCHEDOP %d\n", __func__, cmd);
+               return -EINVAL;
+       }
+
+       ret = xencomm_create((void *)hypercall->arg[1], argsize,
+                            &desc, GFP_KERNEL);
+       if (ret)
+               return ret;
+
+       ret = xencomm_arch_hypercall_sched_op(cmd, desc);
+
+       xencomm_free(desc);
+       return ret;
+}
+
 int
 privcmd_hypercall(privcmd_hypercall_t *hypercall)
 {
@@ -565,6 +593,8 @@ privcmd_hypercall(privcmd_hypercall_t *h
                return xencomm_privcmd_event_channel_op(hypercall);
        case __HYPERVISOR_hvm_op:
                return xencomm_privcmd_hvm_op(hypercall);
+       case __HYPERVISOR_sched_op:
+               return xencomm_privcmd_sched_op(hypercall);
        default:
                printk("%s: unknown hcall (%ld)\n", __func__, hypercall->op);
                return -ENOSYS;

_______________________________________________
Xen-changelog mailing list
Xen-changelog@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-changelog


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.