]> git.baikalelectronics.ru Git - kernel.git/commit
drm/amdgpu: fix race condition in amd_sched_entity_push_job
authorNicolai Hähnle <Nicolai.Haehnle@amd.com>
Wed, 2 Dec 2015 16:35:12 +0000 (17:35 +0100)
committerAlex Deucher <alexander.deucher@amd.com>
Wed, 2 Dec 2015 20:04:04 +0000 (15:04 -0500)
commit662ed84ea39d7e6bac8707dec0c4d3ba9b32461d
treecd4cd9b9a9d38c1dd16ea31b11a4e87766b641b9
parentef71cb4f9dd3a427541c6c57447349ce63a144b6
drm/amdgpu: fix race condition in amd_sched_entity_push_job

As soon as we leave the spinlock after the job has been added to the job
queue, we can no longer rely on the job's data to be available.

I have seen a null-pointer dereference due to sched == NULL in
amd_sched_wakeup via amd_sched_entity_push_job and
amd_sched_ib_submit_kernel_helper. Since the latter initializes
sched_job->sched with the address of the ring scheduler, which is
guaranteed to be non-NULL, this race appears to be a likely culprit.

Signed-off-by: Nicolai Hähnle <nicolai.haehnle@amd.com>
Bugzilla: https://bugs.freedesktop.org/attachment.cgi?bugid=93079
Reviewed-by: Christian König <christian.koenig@amd.com>
drivers/gpu/drm/amd/scheduler/gpu_scheduler.c