summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorgibbs <gibbs@FreeBSD.org>2013-09-27 15:17:28 +0000
committergibbs <gibbs@FreeBSD.org>2013-09-27 15:17:28 +0000
commit7355b035d609952dd56a4ded2ef48a3340f38c33 (patch)
tree651b3076bb4b8e17a4ca69752d16912928e4484c
parentb2189384ce478c4ed94d382a6db8aad0869f284e (diff)
downloadFreeBSD-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)
-rw-r--r--sys/x86/xen/hvm.c5
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)
OpenPOWER on IntegriCloud