diff options
Diffstat (limited to 'meta-amdfalconx86/recipes-kernel/linux/files/0317-drm-amdgpu-remove-fence-reset-detection-leftovers.patch')
-rw-r--r-- | meta-amdfalconx86/recipes-kernel/linux/files/0317-drm-amdgpu-remove-fence-reset-detection-leftovers.patch | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/meta-amdfalconx86/recipes-kernel/linux/files/0317-drm-amdgpu-remove-fence-reset-detection-leftovers.patch b/meta-amdfalconx86/recipes-kernel/linux/files/0317-drm-amdgpu-remove-fence-reset-detection-leftovers.patch new file mode 100644 index 00000000..45481d0a --- /dev/null +++ b/meta-amdfalconx86/recipes-kernel/linux/files/0317-drm-amdgpu-remove-fence-reset-detection-leftovers.patch @@ -0,0 +1,61 @@ +From 58c86b0b002bba8c6001ed49140c345b7e61c4e1 Mon Sep 17 00:00:00 2001 +From: =?UTF-8?q?Christian=20K=C3=B6nig?= <christian.koenig@amd.com> +Date: Thu, 11 Feb 2016 14:42:33 +0100 +Subject: [PATCH 0317/1110] drm/amdgpu: remove fence reset detection leftovers +MIME-Version: 1.0 +Content-Type: text/plain; charset=UTF-8 +Content-Transfer-Encoding: 8bit + +wait_event() never returns before the fence was signaled. + +Signed-off-by: Christian König <christian.koenig@amd.com> +Acked-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c | 14 ++++---------- + 1 file changed, 4 insertions(+), 10 deletions(-) + +diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c +index 7210502..97db196 100644 +--- a/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c ++++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c +@@ -260,19 +260,16 @@ static bool amdgpu_fence_seq_signaled(struct amdgpu_ring *ring, u64 seq) + } + + /* +- * amdgpu_ring_wait_seq_timeout - wait for seq of the specific ring to signal ++ * amdgpu_ring_wait_seq - wait for seq of the specific ring to signal + * @ring: ring to wait on for the seq number + * @seq: seq number wait for + * + * return value: + * 0: seq signaled, and gpu not hang +- * -EDEADL: GPU hang detected + * -EINVAL: some paramter is not valid + */ + static int amdgpu_fence_ring_wait_seq(struct amdgpu_ring *ring, uint64_t seq) + { +- bool signaled = false; +- + BUG_ON(!ring); + if (seq > ring->fence_drv.sync_seq) + return -EINVAL; +@@ -281,13 +278,10 @@ static int amdgpu_fence_ring_wait_seq(struct amdgpu_ring *ring, uint64_t seq) + return 0; + + amdgpu_fence_schedule_fallback(ring); +- wait_event(ring->fence_drv.fence_queue, ( +- (signaled = amdgpu_fence_seq_signaled(ring, seq)))); ++ wait_event(ring->fence_drv.fence_queue, ++ amdgpu_fence_seq_signaled(ring, seq)); + +- if (signaled) +- return 0; +- else +- return -EDEADLK; ++ return 0; + } + + /** +-- +2.7.4 + |