svn commit: r305672 - in stable: 10/sys/amd64/include 10/sys/i386/include 10/sys/x86/x86 10/sys/x86/xen 11/sys/amd64/include 11/sys/i386/include 11/sys/x86/x86 11/sys/x86/xen
John Baldwin
jhb at FreeBSD.org
Fri Sep 9 19:57:34 UTC 2016
Author: jhb
Date: Fri Sep 9 19:57:32 2016
New Revision: 305672
URL: https://svnweb.freebsd.org/changeset/base/305672
Log:
MFC 304637: Fix build for !SMP kernels after the Xen MSIX workaround.
Move msix_disable_migration under #ifdef SMP since it doesn't make sense
for !SMP kernels.
PR: 212014
Modified:
stable/11/sys/amd64/include/intr_machdep.h
stable/11/sys/i386/include/intr_machdep.h
stable/11/sys/x86/x86/msi.c
stable/11/sys/x86/xen/hvm.c
Directory Properties:
stable/11/ (props changed)
Changes in other areas also in this revision:
Modified:
stable/10/sys/amd64/include/intr_machdep.h
stable/10/sys/i386/include/intr_machdep.h
stable/10/sys/x86/x86/msi.c
stable/10/sys/x86/xen/hvm.c
Directory Properties:
stable/10/ (props changed)
Modified: stable/11/sys/amd64/include/intr_machdep.h
==============================================================================
--- stable/11/sys/amd64/include/intr_machdep.h Fri Sep 9 19:13:02 2016 (r305671)
+++ stable/11/sys/amd64/include/intr_machdep.h Fri Sep 9 19:57:32 2016 (r305672)
@@ -148,8 +148,9 @@ extern cpuset_t intr_cpus;
#endif
extern struct mtx icu_lock;
extern int elcr_found;
-
+#ifdef SMP
extern int msix_disable_migration;
+#endif
#ifndef DEV_ATPIC
void atpic_reset(void);
Modified: stable/11/sys/i386/include/intr_machdep.h
==============================================================================
--- stable/11/sys/i386/include/intr_machdep.h Fri Sep 9 19:13:02 2016 (r305671)
+++ stable/11/sys/i386/include/intr_machdep.h Fri Sep 9 19:57:32 2016 (r305672)
@@ -139,8 +139,9 @@ extern cpuset_t intr_cpus;
#endif
extern struct mtx icu_lock;
extern int elcr_found;
-
+#ifdef SMP
extern int msix_disable_migration;
+#endif
#ifndef DEV_ATPIC
void atpic_reset(void);
Modified: stable/11/sys/x86/x86/msi.c
==============================================================================
--- stable/11/sys/x86/x86/msi.c Fri Sep 9 19:13:02 2016 (r305671)
+++ stable/11/sys/x86/x86/msi.c Fri Sep 9 19:57:32 2016 (r305672)
@@ -149,6 +149,7 @@ struct pic msi_pic = {
.pic_reprogram_pin = NULL,
};
+#ifdef SMP
/**
* Xen hypervisors prior to 4.6.0 do not properly handle updates to
* enabled MSI-X table entries. Allow migration of MSI-X interrupts
@@ -162,6 +163,7 @@ int msix_disable_migration = -1;
SYSCTL_INT(_machdep, OID_AUTO, disable_msix_migration, CTLFLAG_RDTUN,
&msix_disable_migration, 0,
"Disable migration of MSI-X interrupts between CPUs");
+#endif
static int msi_enabled;
static int msi_last_irq;
@@ -241,8 +243,10 @@ msi_assign_cpu(struct intsrc *isrc, u_in
if (msi->msi_first != msi)
return (EINVAL);
+#ifdef SMP
if (msix_disable_migration && msi->msi_msix)
return (EINVAL);
+#endif
/* Store information to free existing irq. */
old_vector = msi->msi_vector;
@@ -316,10 +320,12 @@ msi_init(void)
return;
}
+#ifdef SMP
if (msix_disable_migration == -1) {
/* The default is to allow migration of MSI-X interrupts. */
msix_disable_migration = 0;
}
+#endif
msi_enabled = 1;
intr_register_pic(&msi_pic);
Modified: stable/11/sys/x86/xen/hvm.c
==============================================================================
--- stable/11/sys/x86/xen/hvm.c Fri Sep 9 19:13:02 2016 (r305671)
+++ stable/11/sys/x86/xen/hvm.c Fri Sep 9 19:57:32 2016 (r305672)
@@ -143,6 +143,7 @@ xen_hvm_init_hypercall_stubs(enum xen_hv
printf("XEN: Hypervisor version %d.%d detected.\n", major,
minor);
+#ifdef SMP
if (((major < 4) || (major == 4 && minor <= 5)) &&
msix_disable_migration == -1) {
/*
@@ -157,6 +158,7 @@ xen_hvm_init_hypercall_stubs(enum xen_hv
"Set machdep.msix_disable_migration=0 to forcefully enable it.\n");
msix_disable_migration = 1;
}
+#endif
}
/*
More information about the svn-src-all
mailing list