On 07/05/18 15:50, Hans Petter Selasky wrote:
Hi,
This change breaks all atomic usage in drm-next-kmod even after r335913.
The problem is simply that SMP is not defined at all for KLD's so all
non-kernel atomic usage is with MPLOCKED empty!
/*
* For userland, always use lock prefixes so that the binaries will run
* on both SMP and !SMP systems.
*/
#if defined(SMP) || !defined(_KERNEL)
#define MPLOCKED "lock ; "
#else
#define MPLOCKED
#endif
Should the check above be:
#if defined(SMP) || !defined(_KERNEL) || defined(KLD_MODULE)
The problem seems more convoluted. There are more checks I wonder if has
to be changed.
Currently testing this patch: Same applies for i386.
Index: sys/amd64/include/atomic.h
===================================================================
--- sys/amd64/include/atomic.h (revision 335974)
+++ sys/amd64/include/atomic.h (working copy)
@@ -132,7 +132,7 @@
* 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
@@ -343,7 +343,7 @@
* and release.
*/
-#if defined(_KERNEL)
+#if defined(_KERNEL) || defined(KLD_MODULE)
/*
* OFFSETOF_MONITORBUF == __pcpu_offset(pc_monitorbuf).
@@ -354,7 +354,7 @@
*/
#define OFFSETOF_MONITORBUF 0x100
-#if defined(SMP)
+#if defined(SMP) || defined(KLD_MODULE)
static __inline void
__storeload_barrier(void)
{
--HPS
_______________________________________________
svn-src-head@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-head
To unsubscribe, send any mail to "svn-src-head-unsubscr...@freebsd.org"