diff options
| author | Doug Rabson <dfr@FreeBSD.org> | 2009-04-01 17:06:28 +0000 |
|---|---|---|
| committer | Doug Rabson <dfr@FreeBSD.org> | 2009-04-01 17:06:28 +0000 |
| commit | 3e33218d77e6ed32f2dfdab38b1337fd0b024bd6 (patch) | |
| tree | 5494350917ada193418eaf287c32a9c53171fa67 /sys/xen | |
| parent | 4a608e44b524e41bff34be5291dce3c5de0ff341 (diff) | |
Notes
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 61b738b0d981..59d24b2df092 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 892dfbf3c91a..04ba1326c8b7 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 |
