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/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)

Changes in other areas also in this revision:
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)

Modified: stable/10/sys/amd64/include/intr_machdep.h
==============================================================================
--- stable/10/sys/amd64/include/intr_machdep.h	Fri Sep  9 19:13:02 2016	(r305671)
+++ stable/10/sys/amd64/include/intr_machdep.h	Fri Sep  9 19:57:32 2016	(r305672)
@@ -143,8 +143,9 @@ struct nmi_pcpu {
 
 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/10/sys/i386/include/intr_machdep.h
==============================================================================
--- stable/10/sys/i386/include/intr_machdep.h	Fri Sep  9 19:13:02 2016	(r305671)
+++ stable/10/sys/i386/include/intr_machdep.h	Fri Sep  9 19:57:32 2016	(r305672)
@@ -140,8 +140,9 @@ struct trapframe;
 
 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/10/sys/x86/x86/msi.c
==============================================================================
--- stable/10/sys/x86/x86/msi.c	Fri Sep  9 19:13:02 2016	(r305671)
+++ stable/10/sys/x86/x86/msi.c	Fri Sep  9 19:57:32 2016	(r305672)
@@ -135,6 +135,7 @@ struct pic msi_pic = { msi_enable_source
 		       msi_source_pending, NULL, NULL, msi_config_intr,
 		       msi_assign_cpu };
 
+#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
@@ -148,6 +149,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;
@@ -227,8 +229,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;
@@ -302,10 +306,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/10/sys/x86/xen/hvm.c
==============================================================================
--- stable/10/sys/x86/xen/hvm.c	Fri Sep  9 19:13:02 2016	(r305671)
+++ stable/10/sys/x86/xen/hvm.c	Fri Sep  9 19:57:32 2016	(r305672)
@@ -394,6 +394,7 @@ xen_hvm_init_hypercall_stubs(void)
 		printf("XEN: Hypervisor version %d.%d detected.\n", major,
 			minor);
 
+#ifdef SMP
 		if (((major < 4) || (major == 4 && minor <= 5)) &&
 		    msix_disable_migration == -1) {
 			/*
@@ -408,6 +409,7 @@ xen_hvm_init_hypercall_stubs(void)
 "Set machdep.msix_disable_migration=0 to forcefully enable it.\n");
 			msix_disable_migration = 1;
 		}
+#endif
 	}
 
 	/*


More information about the svn-src-stable mailing list