diff options
Diffstat (limited to 'common/recipes-kernel/linux/files/0430-drm-amdgpu-fence-wait-old-rcu-slot.patch')
-rw-r--r-- | common/recipes-kernel/linux/files/0430-drm-amdgpu-fence-wait-old-rcu-slot.patch | 48 |
1 files changed, 0 insertions, 48 deletions
diff --git a/common/recipes-kernel/linux/files/0430-drm-amdgpu-fence-wait-old-rcu-slot.patch b/common/recipes-kernel/linux/files/0430-drm-amdgpu-fence-wait-old-rcu-slot.patch deleted file mode 100644 index 732eb63a..00000000 --- a/common/recipes-kernel/linux/files/0430-drm-amdgpu-fence-wait-old-rcu-slot.patch +++ /dev/null @@ -1,48 +0,0 @@ -From f85e931c028faa6d279fa2d5741ec365a9ca4085 Mon Sep 17 00:00:00 2001 -From: Chunming Zhou <David1.Zhou@amd.com> -Date: Thu, 31 Mar 2016 11:07:14 +0800 -Subject: [PATCH 0430/1110] drm/amdgpu: fence wait old rcu slot -MIME-Version: 1.0 -Content-Type: text/plain; charset=UTF-8 -Content-Transfer-Encoding: 8bit - -since the rcu slot was initialized to be num_hw_submission, -if command submission doesn't use scheduler, this limitation -will be invalid like uvd test. - -Signed-off-by: Chunming Zhou <David1.Zhou@amd.com> -Reviewed-by: Christian König <christian.koenig@amd.com> -Signed-off-by: Alex Deucher <alexander.deucher@amd.com> ---- - drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 8 ++++++-- - 1 file changed, 6 insertions(+), 2 deletions(-) - -diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c -index 4303b44..d81f1f4 100644 ---- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c -+++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c -@@ -121,7 +121,7 @@ int amdgpu_fence_emit(struct amdgpu_ring *ring, struct fence **f) - { - struct amdgpu_device *adev = ring->adev; - struct amdgpu_fence *fence; -- struct fence **ptr; -+ struct fence *old, **ptr; - uint32_t seq; - - fence = kmem_cache_alloc(amdgpu_fence_slab, GFP_KERNEL); -@@ -141,7 +141,11 @@ int amdgpu_fence_emit(struct amdgpu_ring *ring, struct fence **f) - /* This function can't be called concurrently anyway, otherwise - * emitting the fence would mess up the hardware ring buffer. - */ -- BUG_ON(rcu_dereference_protected(*ptr, 1)); -+ old = rcu_dereference_protected(*ptr, 1); -+ if (old && !fence_is_signaled(old)) { -+ DRM_INFO("rcu slot is busy\n"); -+ fence_wait(old, false); -+ } - - rcu_assign_pointer(*ptr, fence_get(&fence->base)); - --- -2.7.4 - |