Skip site navigation (1)Skip section navigation (2)
Date:      Thu, 29 Aug 2013 19:47:53 +0000 (UTC)
From:      Jung-uk Kim <jkim@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org
Subject:   svn commit: r255039 - head/sys/dev/drm2
Message-ID:  <201308291947.r7TJlrqI051303@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: jkim
Date: Thu Aug 29 19:47:52 2013
New Revision: 255039
URL: http://svnweb.freebsd.org/changeset/base/255039

Log:
  - Remove test_and_set_bit() macro.  It is unused since r255037.
  - Relax atomic_read() and atomic_set() macros.  Linux does not require any
  memory barrier.  Also, these macros may be even reordered or optimized away
  according to the API documentation:
  
  https://www.kernel.org/doc/Documentation/atomic_ops.txt

Modified:
  head/sys/dev/drm2/drm_atomic.h

Modified: head/sys/dev/drm2/drm_atomic.h
==============================================================================
--- head/sys/dev/drm2/drm_atomic.h	Thu Aug 29 19:35:14 2013	(r255038)
+++ head/sys/dev/drm2/drm_atomic.h	Thu Aug 29 19:47:52 2013	(r255039)
@@ -37,8 +37,8 @@ typedef uint64_t	atomic64_t;
 
 #define	BITS_TO_LONGS(x)		howmany(x, sizeof(long) * NBBY)
 
-#define	atomic_set(p, v)		atomic_store_rel_int(p, v)
-#define	atomic_read(p)			atomic_load_acq_int(p)
+#define	atomic_read(p)			(*(volatile u_int *)(p))
+#define	atomic_set(p, v)		do { *(u_int *)(p) = (v); } while (0)
 
 #define	atomic_add(v, p)		atomic_add_int(p, v)
 #define	atomic_sub(v, p)		atomic_subtract_int(p, v)
@@ -63,9 +63,7 @@ typedef uint64_t	atomic64_t;
 #define	set_bit(b, p) \
     atomic_set_int((volatile u_int *)(p) + (b) / 32, 1 << (b) % 32)
 #define	test_bit(b, p) \
-    (atomic_load_acq_int((volatile u_int *)(p) + (b) / 32) & (1 << (b) % 32))
-#define	test_and_set_bit(b, p) \
-    atomic_testandset_int((volatile u_int *)(p) + (b) / 32, b)
+    ((atomic_read((volatile u_int *)(p) + (b) / 32) & (1 << (b) % 32)) != 0)
 
 static __inline int
 find_first_zero_bit(volatile void *p, int max)



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