From 2dcfd29861f2c5dc75cff988e7d950e15aad9da2 Mon Sep 17 00:00:00 2001 From: Debarshi Dutta Date: Fri, 1 Sep 2017 10:14:59 +0530 Subject: gpu: nvgpu: NVGPU abstraction for ACCESS_ONCE Construct a wrapper macro NV_ACCESS_ONCE(x) which uses OS specific versions of ACCESS_ONCE. e.g for linux, ACCESS_ONCE(x) is used. Jira NVGPU-125 Change-Id: Ia5c67baae111c1a7978c530bf279715fc808287d Signed-off-by: Debarshi Dutta Reviewed-on: https://git-master.nvidia.com/r/1549928 Reviewed-by: svc-mobile-coverity Reviewed-by: svccoveritychecker Reviewed-by: Automatic_Commit_Validation_User GVS: Gerrit_Virtual_Submit Reviewed-by: Terje Bergstrom --- drivers/gpu/nvgpu/common/mm/lockless_allocator.c | 10 +++++----- drivers/gpu/nvgpu/common/pmu/pmu.c | 2 +- 2 files changed, 6 insertions(+), 6 deletions(-) (limited to 'drivers/gpu/nvgpu/common') diff --git a/drivers/gpu/nvgpu/common/mm/lockless_allocator.c b/drivers/gpu/nvgpu/common/mm/lockless_allocator.c index 04df7e3f..0df1ae9d 100644 --- a/drivers/gpu/nvgpu/common/mm/lockless_allocator.c +++ b/drivers/gpu/nvgpu/common/mm/lockless_allocator.c @@ -60,9 +60,9 @@ static u64 nvgpu_lockless_alloc(struct nvgpu_allocator *a, u64 len) if (len != pa->blk_size) return 0; - head = ACCESS_ONCE(pa->head); + head = NV_ACCESS_ONCE(pa->head); while (head >= 0) { - new_head = ACCESS_ONCE(pa->next[head]); + new_head = NV_ACCESS_ONCE(pa->next[head]); ret = cmpxchg(&pa->head, head, new_head); if (ret == head) { addr = pa->base + head * pa->blk_size; @@ -71,7 +71,7 @@ static u64 nvgpu_lockless_alloc(struct nvgpu_allocator *a, u64 len) addr); break; } - head = ACCESS_ONCE(pa->head); + head = NV_ACCESS_ONCE(pa->head); } if (addr) @@ -93,8 +93,8 @@ static void nvgpu_lockless_free(struct nvgpu_allocator *a, u64 addr) alloc_dbg(a, "Free node # %llu @ addr 0x%llx\n", cur_idx, addr); while (1) { - head = ACCESS_ONCE(pa->head); - ACCESS_ONCE(pa->next[cur_idx]) = head; + head = NV_ACCESS_ONCE(pa->head); + NV_ACCESS_ONCE(pa->next[cur_idx]) = head; ret = cmpxchg(&pa->head, head, cur_idx); if (ret == head) { nvgpu_atomic_dec(&pa->nr_allocs); diff --git a/drivers/gpu/nvgpu/common/pmu/pmu.c b/drivers/gpu/nvgpu/common/pmu/pmu.c index 63597d10..89216ea2 100644 --- a/drivers/gpu/nvgpu/common/pmu/pmu.c +++ b/drivers/gpu/nvgpu/common/pmu/pmu.c @@ -413,7 +413,7 @@ static int nvgpu_pg_init_task(void *arg) (pg_init->state_change == true), 0); pmu->pg_init.state_change = false; - pmu_state = ACCESS_ONCE(pmu->pmu_state); + pmu_state = NV_ACCESS_ONCE(pmu->pmu_state); if (pmu_state == PMU_STATE_EXIT) { nvgpu_pmu_dbg(g, "pmu state exit"); -- cgit v1.2.2