diff options
author | Jammy Zhou <Jammy.Zhou@amd.com> | 2015-07-31 17:54:29 +0800 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2015-08-17 16:50:57 -0400 |
commit | 63ad8d5882fcd466861fdbe51fc3a119b894d9a3 (patch) | |
tree | 49b1f7117f31e6c8a1b90a30ca83f308601d6a72 /drivers | |
parent | f95b7e3e8664fbea4e60f15e7e8a975e4b2b7c3f (diff) |
drm/amdgpu: make last_handled_seq atomic
Signed-off-by: Jammy Zhou <Jammy.Zhou@amd.com>
Reviewed-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 6 | ||||
-rw-r--r-- | drivers/gpu/drm/amd/scheduler/gpu_scheduler.h | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c index 66938f1597bb..55ebbf0f8cd0 100644 --- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c +++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c @@ -393,7 +393,7 @@ static int amd_sched_main(void *param) uint64_t amd_sched_get_handled_seq(struct amd_gpu_scheduler *sched) { - return sched->last_handled_seq; + return atomic64_read(&sched->last_handled_seq); } /** @@ -414,7 +414,7 @@ void amd_sched_isr(struct amd_gpu_scheduler *sched) job = NULL; sched->ops->process_job(sched, job); - sched->last_handled_seq++; + atomic64_inc(&sched->last_handled_seq); wake_up_interruptible(&sched->wait_queue); } @@ -448,7 +448,7 @@ struct amd_gpu_scheduler *amd_sched_create(void *device, sched->granularity = granularity; sched->ring_id = ring; sched->preemption = preemption; - sched->last_handled_seq = 0; + atomic64_set(&sched->last_handled_seq, 0); snprintf(name, sizeof(name), "gpu_sched[%d]", ring); mutex_init(&sched->sched_lock); diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h index af2afdf2309c..44f71cdf7c33 100644 --- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h +++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.h @@ -112,7 +112,7 @@ struct amd_gpu_scheduler { uint32_t ring_id; uint32_t granularity; /* in ms unit */ uint32_t preemption; - uint64_t last_handled_seq; + atomic64_t last_handled_seq; wait_queue_head_t wait_queue; struct amd_context_entity *current_entity; struct mutex sched_lock; |