diff --git a/sys/dev/xen/control/control.c b/sys/dev/xen/control/control.c index 60e448a..87c1d70 100644 --- a/sys/dev/xen/control/control.c +++ b/sys/dev/xen/control/control.c @@ -128,6 +128,7 @@ __FBSDID("$FreeBSD$"); #include #include #include +#include #include #include @@ -404,14 +405,14 @@ xctrl_suspend() gnttab_resume(); #ifdef SMP - /* Send an IPI_BITMAP in case there are pending bitmap IPIs. */ - lapic_ipi_vectored(IPI_BITMAP_VECTOR, APIC_IPI_DEST_ALL); if (smp_started && !CPU_EMPTY(&cpu_suspend_map)) { /* * Now that event channels have been initialized, * resume CPUs. */ resume_cpus(cpu_suspend_map); + /* Send an IPI_BITMAP in case there are pending bitmap IPIs. */ + cpu_ops.ipi_vectored(IPI_BITMAP_VECTOR, APIC_IPI_DEST_ALL); } #endif