xen: use new sched_op

Use the new sched_op hypercall, mainly because xenner doesn't support
the old one.

Signed-off-by: Jeremy Fitzhardinge <jeremy.fitzhardinge@citrix.com>
Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
This commit is contained in:
Jeremy Fitzhardinge
2008-05-26 23:31:02 +01:00
committed by Thomas Gleixner
parent 7b1333aa4c
commit 349c709f42
2 changed files with 6 additions and 4 deletions

View File

@@ -254,7 +254,7 @@ static void xen_irq_enable(void)
static void xen_safe_halt(void) static void xen_safe_halt(void)
{ {
/* Blocking includes an implicit local_irq_enable(). */ /* Blocking includes an implicit local_irq_enable(). */
if (HYPERVISOR_sched_op(SCHEDOP_block, 0) != 0) if (HYPERVISOR_sched_op(SCHEDOP_block, NULL) != 0)
BUG(); BUG();
} }
@@ -1138,11 +1138,13 @@ static const struct smp_ops xen_smp_ops __initdata = {
static void xen_reboot(int reason) static void xen_reboot(int reason)
{ {
struct sched_shutdown r = { .reason = reason };
#ifdef CONFIG_SMP #ifdef CONFIG_SMP
smp_send_stop(); smp_send_stop();
#endif #endif
if (HYPERVISOR_sched_op(SCHEDOP_shutdown, reason)) if (HYPERVISOR_sched_op(SCHEDOP_shutdown, &r))
BUG(); BUG();
} }

View File

@@ -176,9 +176,9 @@ HYPERVISOR_fpu_taskswitch(int set)
} }
static inline int static inline int
HYPERVISOR_sched_op(int cmd, unsigned long arg) HYPERVISOR_sched_op(int cmd, void *arg)
{ {
return _hypercall2(int, sched_op, cmd, arg); return _hypercall2(int, sched_op_new, cmd, arg);
} }
static inline long static inline long