diff options
author | Christian König <christian.koenig@amd.com> | 2015-08-20 16:59:38 +0200 |
---|---|---|
committer | Alex Deucher <alexander.deucher@amd.com> | 2015-08-25 10:43:46 -0400 |
commit | f49565982194d601f4f3a99892d0f3c765aec104 (patch) | |
tree | abedfc8ff3a47ddd74cd6ac4e1f750d00f41f847 /drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | |
parent | aef4852eed2841892796fb1e9abd7f8468384e62 (diff) | |
download | blackbird-op-linux-f49565982194d601f4f3a99892d0f3c765aec104.tar.gz blackbird-op-linux-f49565982194d601f4f3a99892d0f3c765aec104.zip |
drm/amdgpu: fix scheduler thread creation error checking
Signed-off-by: Christian König <christian.koenig@amd.com>
Reviewed-by: Chunming Zhou <david1.zhou@amd.com>
Diffstat (limited to 'drivers/gpu/drm/amd/scheduler/gpu_scheduler.c')
-rw-r--r-- | drivers/gpu/drm/amd/scheduler/gpu_scheduler.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c index 0133697c127e..435d70499d3e 100644 --- a/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c +++ b/drivers/gpu/drm/amd/scheduler/gpu_scheduler.c @@ -367,15 +367,14 @@ struct amd_gpu_scheduler *amd_sched_create(void *device, init_waitqueue_head(&sched->wait_queue); atomic_set(&sched->hw_rq_count, 0); /* Each scheduler will run on a seperate kernel thread */ - sched->thread = kthread_create(amd_sched_main, sched, name); - if (sched->thread) { - wake_up_process(sched->thread); - return sched; + sched->thread = kthread_run(amd_sched_main, sched, name); + if (IS_ERR(sched->thread)) { + DRM_ERROR("Failed to create scheduler for id %d.\n", ring); + kfree(sched); + return NULL; } - DRM_ERROR("Failed to create scheduler for id %d.\n", ring); - kfree(sched); - return NULL; + return sched; } /** |