# 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
|