diff options
author | gibbs <gibbs@FreeBSD.org> | 2013-09-27 15:17:28 +0000 |
---|---|---|
committer | gibbs <gibbs@FreeBSD.org> | 2013-09-27 15:17:28 +0000 |
commit | 7355b035d609952dd56a4ded2ef48a3340f38c33 (patch) | |
tree | 651b3076bb4b8e17a4ca69752d16912928e4484c /sys/x86/xen/hvm.c | |
parent | b2189384ce478c4ed94d382a6db8aad0869f284e (diff) | |
download | FreeBSD-src-7355b035d609952dd56a4ded2ef48a3340f38c33.zip FreeBSD-src-7355b035d609952dd56a4ded2ef48a3340f38c33.tar.gz |
sys/x86/xen/hvm.c:
Set cpu_ops correctly for Xen hypervisors lacking the
vector callback feature.
Set preliminary Xen cpu_ops settings during early HVM
initialization. The old location raced with the startup
of APs.
Submitted by: Roger Pau Monné
Reviewed by: gibbs
Approved by: re (blanket Xen)
Diffstat (limited to 'sys/x86/xen/hvm.c')
-rw-r--r-- | sys/x86/xen/hvm.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/x86/xen/hvm.c b/sys/x86/xen/hvm.c index 2286cf0..bb7bb5b 100644 --- a/sys/x86/xen/hvm.c +++ b/sys/x86/xen/hvm.c @@ -117,7 +117,7 @@ struct xen_ipi_handler enum xen_domain_type xen_domain_type = XEN_NATIVE; struct cpu_ops xen_hvm_cpu_ops = { - .ipi_vectored = xen_ipi_vectored, + .ipi_vectored = lapic_ipi_vectored, .cpu_init = xen_hvm_cpu_init, .cpu_resume = xen_hvm_cpu_resume }; @@ -535,7 +535,7 @@ xen_setup_cpus(void) xen_cpu_ipi_init(i); /* Set the xen pv ipi ops to replace the native ones */ - cpu_ops = xen_hvm_cpu_ops; + cpu_ops.ipi_vectored = xen_ipi_vectored; } #endif @@ -699,6 +699,7 @@ xen_hvm_init(enum xen_hvm_init_type init_type) return; setup_xen_features(); + cpu_ops = xen_hvm_cpu_ops; break; case XEN_HVM_INIT_RESUME: if (error != 0) |