Author: hselasky
Date: Fri Jul  6 10:13:42 2018
New Revision: 336025
URL: https://svnweb.freebsd.org/changeset/base/336025

Log:
  Make sure kernel modules built by default are portable between UP and
  SMP systems by extending defined(SMP) to include defined(KLD_MODULE).
  
  This is a regression issue after r335873 .
  
  Discussed with:               mmacy@
  Sponsored by:         Mellanox Technologies

Modified:
  head/sys/amd64/include/atomic.h
  head/sys/i386/include/atomic.h

Modified: head/sys/amd64/include/atomic.h
==============================================================================
--- head/sys/amd64/include/atomic.h     Fri Jul  6 10:10:00 2018        
(r336024)
+++ head/sys/amd64/include/atomic.h     Fri Jul  6 10:13:42 2018        
(r336025)
@@ -132,7 +132,7 @@ void                atomic_store_rel_##TYPE(volatile 
u_##TYPE *p, u_
  * For userland, always use lock prefixes so that the binaries will run
  * on both SMP and !SMP systems.
  */
-#if defined(SMP) || !defined(_KERNEL)
+#if defined(SMP) || !defined(_KERNEL) || defined(KLD_MODULE)
 #define        MPLOCKED        "lock ; "
 #else
 #define        MPLOCKED
@@ -354,7 +354,7 @@ atomic_testandclear_long(volatile u_long *p, u_int v)
  */
 #define        OFFSETOF_MONITORBUF     0x100
 
-#if defined(SMP)
+#if defined(SMP) || defined(KLD_MODULE)
 static __inline void
 __storeload_barrier(void)
 {

Modified: head/sys/i386/include/atomic.h
==============================================================================
--- head/sys/i386/include/atomic.h      Fri Jul  6 10:10:00 2018        
(r336024)
+++ head/sys/i386/include/atomic.h      Fri Jul  6 10:13:42 2018        
(r336025)
@@ -143,7 +143,7 @@ void                atomic_subtract_64(volatile uint64_t *, 
uint64_t
  * For userland, always use lock prefixes so that the binaries will run
  * on both SMP and !SMP systems.
  */
-#if defined(SMP) || !defined(_KERNEL)
+#if defined(SMP) || !defined(_KERNEL) || defined(KLD_MODULE)
 #define        MPLOCKED        "lock ; "
 #else
 #define        MPLOCKED
@@ -302,7 +302,7 @@ atomic_testandclear_int(volatile u_int *p, u_int v)
  */
 
 #if defined(_KERNEL)
-#if defined(SMP)
+#if defined(SMP) || defined(KLD_MODULE)
 #define        __storeload_barrier()   __mbk()
 #else /* _KERNEL && UP */
 #define        __storeload_barrier()   __compiler_membar()
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to