From de9e914670c00de1184fd66100d2fbb98fd58b8e Mon Sep 17 00:00:00 2001 From: ajesh Date: Fri, 10 May 2019 12:28:40 +0530 Subject: [PATCH] gpu: nvgpu: fix MISRA violations in atomic unit MISRA rule 20.7 requires macro paramaters to be wrapped in parantheses when the parameter expands into an expression. Fix violations of rule 20.7 in atomic unit. MISRA rule 10.3 prohibits the assignment of the value of an expression to an object with narrower essential type or of a different essential type category. Fix violations of rule 10.3 in atomic unit. Jira NVGPU-3296 Change-Id: I087a6d15c5d03885aea29f22853e5bbde7880014 Signed-off-by: ajesh Reviewed-on: https://git-master.nvidia.com/r/2116306 GVS: Gerrit_Virtual_Submit Reviewed-by: Philip Elcan Reviewed-by: Alex Waterman Reviewed-by: mobile promotions Tested-by: mobile promotions --- .../gpu/nvgpu/include/nvgpu/posix/atomic.h | 42 +++++++++---------- 1 file changed, 21 insertions(+), 21 deletions(-) diff --git a/drivers/gpu/nvgpu/include/nvgpu/posix/atomic.h b/drivers/gpu/nvgpu/include/nvgpu/posix/atomic.h index 23990f79d..a4573883b 100644 --- a/drivers/gpu/nvgpu/include/nvgpu/posix/atomic.h +++ b/drivers/gpu/nvgpu/include/nvgpu/posix/atomic.h @@ -47,49 +47,49 @@ typedef struct __nvgpu_posix_atomic64 { * between the 32bit and 64bit cases. * The static inline functions are maintained to provide type checking. */ -#define NVGPU_POSIX_ATOMIC_SET(v, i) atomic_store(&(v->v), i) +#define NVGPU_POSIX_ATOMIC_SET(v, i) atomic_store(&((v)->v), (i)) -#define NVGPU_POSIX_ATOMIC_READ(v) atomic_load(&(v->v)) +#define NVGPU_POSIX_ATOMIC_READ(v) atomic_load(&((v)->v)) #define NVGPU_POSIX_ATOMIC_ADD_RETURN(v, i) \ ({ \ - typeof(v->v) tmp; \ + typeof((v)->v) tmp; \ \ - tmp = atomic_fetch_add(&(v->v), i); \ - tmp += i; \ + tmp = (typeof((v)->v))atomic_fetch_add(&((v)->v), (i)); \ + tmp += (i); \ tmp; \ }) #define NVGPU_POSIX_ATOMIC_SUB_RETURN(v, i) \ ({ \ - typeof(v->v) tmp; \ + typeof((v)->v) tmp; \ \ - tmp = atomic_fetch_sub(&(v->v), i); \ - tmp -= i; \ + tmp = (typeof((v)->v))atomic_fetch_sub(&((v)->v), (i)); \ + tmp -= (i); \ tmp; \ }) -#define NVGPU_POSIX_ATOMIC_CMPXCHG(v, old, new) \ +#define NVGPU_POSIX_ATOMIC_CMPXCHG(v, old, new) \ ({ \ - typeof(v->v) tmp = old; \ + typeof((v)->v) tmp = (old); \ \ - atomic_compare_exchange_strong(&(v->v), &tmp, new); \ + atomic_compare_exchange_strong(&((v)->v), &tmp, (new)); \ tmp; \ }) -#define NVGPU_POSIX_ATOMIC_XCHG(v, new) atomic_exchange(&(v->v), new) +#define NVGPU_POSIX_ATOMIC_XCHG(v, new) atomic_exchange(&((v)->v), (new)) -#define NVGPU_POSIX_ATOMIC_ADD_UNLESS(v, a, u) \ +#define NVGPU_POSIX_ATOMIC_ADD_UNLESS(v, a, u) \ ({ \ - typeof(v->v) old; \ + typeof((v)->v) old; \ \ do { \ - old = atomic_load(&(v->v)); \ - if (old == u) { \ + old = atomic_load(&((v)->v)); \ + if (old == (u)) { \ break; \ } \ - } while (!atomic_compare_exchange_strong(&(v->v), &old, \ - old + a)); \ + } while (!atomic_compare_exchange_strong(&((v)->v), \ + &old, old + (a))); \ old; \ }) @@ -262,10 +262,10 @@ static inline bool nvgpu_atomic64_sub_and_test_impl(long x, nvgpu_atomic64_t *v) */ #define cmpxchg(p, old, new) \ ({ \ - typeof(*(p)) tmp = old; \ + typeof(*(p)) tmp = (old); \ \ - (void) nvgpu_atomic_cmpxchg((nvgpu_atomic_t *) p, tmp, \ - new); \ + (void) nvgpu_atomic_cmpxchg((nvgpu_atomic_t *) (p), tmp,\ + (new)); \ tmp; \ })