Skip site navigation (1)Skip section navigation (2)
Date:      Fri, 6 Jul 2018 10:13:42 +0000 (UTC)
From:      Hans Petter Selasky <hselasky@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r336025 - in head/sys: amd64/include i386/include
Message-ID:  <201807061013.w66ADgbJ087546@repo.freebsd.org>

next in thread | raw e-mail | index | archive | help
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()



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201807061013.w66ADgbJ087546>