From 69331cdfb77d4f43beff749d67493f2a3ecc45f8 Mon Sep 17 00:00:00 2001 From: Nitin Kumbhar Date: Tue, 21 May 2019 14:30:16 +0530 Subject: [PATCH] gpu: nvgpu: posix: fix EXP32 CERT C violation Do not ignore volatile attribute of addr while assigning it to p. Error: CERT EXP32-C: drivers/gpu/nvgpu/os/posix/bitmap.c:227: cert_violation: Access volatile variable "addr" through a nonvolatile reference. Jira NVGPU-3560 Change-Id: I202b143e1818641b12f6552810953ac447348271 Signed-off-by: Nitin Kumbhar Reviewed-on: https://git-master.nvidia.com/r/2122720 Reviewed-by: mobile promotions Tested-by: mobile promotions --- drivers/gpu/nvgpu/os/posix/bitmap.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/drivers/gpu/nvgpu/os/posix/bitmap.c b/drivers/gpu/nvgpu/os/posix/bitmap.c index d93b2422f..c5d2f15b4 100644 --- a/drivers/gpu/nvgpu/os/posix/bitmap.c +++ b/drivers/gpu/nvgpu/os/posix/bitmap.c @@ -216,7 +216,8 @@ bool test_and_set_bit(int nr, volatile unsigned long *addr) bool test_and_clear_bit(int nr, volatile unsigned long *addr) { unsigned long mask = BIT_MASK(nr); - unsigned long *p = ((unsigned long *)addr) + BIT_WORD(nr); + volatile unsigned long *p = + ((volatile unsigned long *)addr) + BIT_WORD(nr); return (atomic_fetch_and(p, ~mask) & mask) != 0ULL; }