svn commit: r359264 - head/sys/arm/include

Conrad Meyer cem at FreeBSD.org
Mon Mar 23 23:00:14 UTC 2020


Author: cem
Date: Mon Mar 23 23:00:13 2020
New Revision: 359264
URL: https://svnweb.freebsd.org/changeset/base/359264

Log:
  arm: Fix atomic long APIs to correct 'u_long' signedness
  
  As defined in atomic(9) and implemented on other architectures, the
  atomic(9) functions all act on unsigned pointers and types.  Prior to this
  revision, arm implemented some atomic(9) 'long' sized routines with correct
  unsigned type, but others were incorrectly signed.
  
  Reviewed by:	tinderbox
  Sponsored by:	Dell EMC Isilon

Modified:
  head/sys/arm/include/atomic-v6.h

Modified: head/sys/arm/include/atomic-v6.h
==============================================================================
--- head/sys/arm/include/atomic-v6.h	Mon Mar 23 21:26:32 2020	(r359263)
+++ head/sys/arm/include/atomic-v6.h	Mon Mar 23 23:00:13 2020	(r359264)
@@ -325,31 +325,31 @@ atomic_fcmpset_rel_32(volatile uint32_t *_ptr, uint32_
 }
 
 static __inline int
-atomic_fcmpset_long(volatile long *_ptr, long *_old, long _new)
+atomic_fcmpset_long(volatile u_long *_ptr, u_long *_old, u_long _new)
 {
 	int ret;
 
-	ATOMIC_FCMPSET_CODE(ret, long, "");
+	ATOMIC_FCMPSET_CODE(ret, u_long, "");
 	return (ret);
 }
 
 static __inline int
-atomic_fcmpset_acq_long(volatile long *_ptr, long *_old, long _new)
+atomic_fcmpset_acq_long(volatile u_long *_ptr, u_long *_old, u_long _new)
 {
 	int ret;
 
-	ATOMIC_FCMPSET_CODE(ret, long, "");
+	ATOMIC_FCMPSET_CODE(ret, u_long, "");
 	dmb();
 	return (ret);
 }
 
 static __inline int
-atomic_fcmpset_rel_long(volatile long *_ptr, long *_old, long _new)
+atomic_fcmpset_rel_long(volatile u_long *_ptr, u_long *_old, u_long _new)
 {
 	int ret;
 
 	dmb();
-	ATOMIC_FCMPSET_CODE(ret, long, "");
+	ATOMIC_FCMPSET_CODE(ret, u_long, "");
 	return (ret);
 }
 
@@ -509,7 +509,7 @@ atomic_cmpset_rel_32(volatile uint32_t *_ptr, uint32_t
 }
 
 static __inline int
-atomic_cmpset_long(volatile long *_ptr, long _old, long _new)
+atomic_cmpset_long(volatile u_long *_ptr, u_long _old, u_long _new)
 {
 	int ret;
 
@@ -518,7 +518,7 @@ atomic_cmpset_long(volatile long *_ptr, long _old, lon
 }
 
 static __inline int
-atomic_cmpset_acq_long(volatile long *_ptr, long _old, long _new)
+atomic_cmpset_acq_long(volatile u_long *_ptr, u_long _old, u_long _new)
 {
 	int ret;
 
@@ -528,7 +528,7 @@ atomic_cmpset_acq_long(volatile long *_ptr, long _old,
 }
 
 static __inline int
-atomic_cmpset_rel_long(volatile long *_ptr, long _old, long _new)
+atomic_cmpset_rel_long(volatile u_long *_ptr, u_long _old, u_long _new)
 {
 	int ret;
 


More information about the svn-src-head mailing list