Date: Mon, 23 Mar 2020 23:00:14 +0000 (UTC) From: Conrad Meyer <cem@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r359264 - head/sys/arm/include Message-ID: <202003232300.02NN0EaB008755@repo.freebsd.org>
next in thread | raw e-mail | index | archive | help
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;
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?202003232300.02NN0EaB008755>