diff options
author | dfr <dfr@FreeBSD.org> | 2009-04-01 17:06:28 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 2009-04-01 17:06:28 +0000 |
commit | df0ed71781b42b3334d3cf4200cf60ae4eb0ec19 (patch) | |
tree | 5494350917ada193418eaf287c32a9c53171fa67 /sys/xen | |
parent | ce3adf17d25ae823e1c74998576355f7da16fe40 (diff) | |
download | FreeBSD-src-df0ed71781b42b3334d3cf4200cf60ae4eb0ec19.zip FreeBSD-src-df0ed71781b42b3334d3cf4200cf60ae4eb0ec19.tar.gz |
Fix the Xen build for i386 PV mode.
Diffstat (limited to 'sys/xen')
-rw-r--r-- | sys/xen/evtchn/evtchn.c | 2 | ||||
-rw-r--r-- | sys/xen/reboot.c | 8 |
2 files changed, 7 insertions, 3 deletions
diff --git a/sys/xen/evtchn/evtchn.c b/sys/xen/evtchn/evtchn.c index 61b738b..59d24b2 100644 --- a/sys/xen/evtchn/evtchn.c +++ b/sys/xen/evtchn/evtchn.c @@ -512,7 +512,7 @@ bind_interdomain_evtchn_to_irqhandler(unsigned int remote_domain, int bind_virq_to_irqhandler(unsigned int virq, unsigned int cpu, const char *devname, driver_filter_t filter, driver_intr_t handler, - unsigned long irqflags, unsigned int *irqp) + void *arg, unsigned long irqflags, unsigned int *irqp) { unsigned int irq; int error; diff --git a/sys/xen/reboot.c b/sys/xen/reboot.c index 892dfbf..04ba132 100644 --- a/sys/xen/reboot.c +++ b/sys/xen/reboot.c @@ -176,9 +176,9 @@ xen_suspend() /* * Bind us to CPU 0 and stop any other VCPUs. */ - mtx_lock_spin(&sched_lock); + thread_lock(curthread); sched_bind(curthread, 0); - mtx_unlock_spin(&sched_lock); + thread_unlock(curthread); KASSERT(PCPU_GET(cpuid) == 0, ("xen_suspend: not running on cpu 0")); map = PCPU_GET(other_cpus) & ~stopped_cpus; @@ -188,8 +188,10 @@ xen_suspend() if (DEVICE_SUSPEND(root_bus) != 0) { printf("xen_suspend: device_suspend failed\n"); +#ifdef SMP if (map) restart_cpus(map); +#endif return; } @@ -253,7 +255,9 @@ xen_suspend() DEVICE_RESUME(root_bus); #ifdef SMP + thread_lock(curthread); sched_unbind(curthread); + thread_unlock(curthread); if (map) restart_cpus(map); #endif |