>
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGrazvydas Ignotas <notasas@gmail.com>2016-10-23 21:31:43 +0300
committerAlex Deucher <alexander.deucher@amd.com>2016-10-24 17:01:22 -0400
commit0f10425e811355986907c54f7d1d06703e406092 (patch)
tree69924312f546d87d69e8209aea7da07b4257beae
parent9566213359aa75851a9ca7fea613652fb5fcb081 (diff)
drm/amdgpu: fix fence slab teardown
To free fences, call_rcu() is used, which calls amdgpu_fence_free() after a grace period. During teardown, there is no guarantee all callbacks have finished, so amdgpu_fence_slab may be destroyed before all fences have been freed. If we are lucky, this results in some slab warnings, if not, we get a crash in one of rcu threads because callback is called after amdgpu has already been unloaded. Fix it with a rcu_barrier(). Fixes: b44135351a3a ("drm/amdgpu: RCU protected amdgpu_fence_release") Acked-by: Chunming Zhou <david1.zhou@amd.com> Reviewed-by: Christian König <christian.koenig@amd.com> Signed-off-by: Grazvydas Ignotas <notasas@gmail.com> Signed-off-by: Alex Deucher <alexander.deucher@amd.com>