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

[Xen-changelog] [xen-unstable] [IA64] Fix PV-on-HVM driver



# HG changeset patch
# User Alex Williamson <alex.williamson@xxxxxx>
# Date 1176354930 21600
# Node ID e1580c3bb75a7d8a57bbacf5a2a97aa27c3a8b58
# Parent  e4bd31a66a2e2bc70faa3851cb8706d791b38f99
[IA64] Fix PV-on-HVM driver

xen-platform-pci fails to load w/ undefined symbols for some of the
sched_op hypercalls in machine_reboot.c.  This adds them to xencomm
mini to allow them to be called from modules.

Signed-off-by: Alex Williamson <alex.williamson@xxxxxx>
---
 linux-2.6-xen-sparse/arch/ia64/xen/xcom_mini.c     |   36 +++++++++++++++++++++
 linux-2.6-xen-sparse/include/asm-ia64/hypervisor.h |    2 -
 2 files changed, 37 insertions(+), 1 deletion(-)

diff -r e4bd31a66a2e -r e1580c3bb75a 
linux-2.6-xen-sparse/arch/ia64/xen/xcom_mini.c
--- a/linux-2.6-xen-sparse/arch/ia64/xen/xcom_mini.c    Wed Apr 11 22:46:10 
2007 -0600
+++ b/linux-2.6-xen-sparse/arch/ia64/xen/xcom_mini.c    Wed Apr 11 23:15:30 
2007 -0600
@@ -418,3 +418,39 @@ xencomm_mini_hypercall_perfmon_op(unsign
        return xencomm_arch_hypercall_perfmon_op(cmd, desc, count);
 }
 EXPORT_SYMBOL_GPL(xencomm_mini_hypercall_perfmon_op);
+
+int
+xencomm_mini_hypercall_sched_op(int cmd, void *arg)
+{
+       int rc, nbr_area = 2;
+       struct xencomm_mini xc_area[2];
+       struct xencomm_handle *desc;
+       unsigned int argsize;
+
+       switch (cmd) {
+       case SCHEDOP_yield:
+       case SCHEDOP_block:
+               argsize = 0;
+               break;
+       case SCHEDOP_shutdown:
+               argsize = sizeof(sched_shutdown_t);
+               break;
+       case SCHEDOP_poll:
+               argsize = sizeof(sched_poll_t);
+               break;
+       case SCHEDOP_remote_shutdown:
+               argsize = sizeof(sched_remote_shutdown_t);
+               break;
+
+       default:
+               printk("%s: unknown sched op %d\n", __func__, cmd);
+               return -ENOSYS;
+       }
+
+       rc = xencomm_create_mini(xc_area, &nbr_area, arg, argsize, &desc);
+       if (rc)
+               return rc;
+
+       return xencomm_arch_hypercall_sched_op(cmd, desc);
+}
+EXPORT_SYMBOL_GPL(xencomm_mini_hypercall_sched_op);
diff -r e4bd31a66a2e -r e1580c3bb75a 
linux-2.6-xen-sparse/include/asm-ia64/hypervisor.h
--- a/linux-2.6-xen-sparse/include/asm-ia64/hypervisor.h        Wed Apr 11 
22:46:10 2007 -0600
+++ b/linux-2.6-xen-sparse/include/asm-ia64/hypervisor.h        Wed Apr 11 
23:15:30 2007 -0600
@@ -64,7 +64,6 @@ extern start_info_t *xen_start_info;
 
 void force_evtchn_callback(void);
 
-#ifndef CONFIG_VMX_GUEST
 /* Turn jiffies into Xen system time. XXX Implement me. */
 #define jiffies_to_st(j)       0
 
@@ -116,6 +115,7 @@ HYPERVISOR_poll(
        return rc;
 }
 
+#ifndef CONFIG_VMX_GUEST
 // for drivers/xen/privcmd/privcmd.c
 #define machine_to_phys_mapping 0
 struct vm_area_struct;

_______________________________________________
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®.