linux-fslc-imx: Backport mainline patches to fix GPU hangs
[AGL/meta-agl.git] / meta-agl-bsp / meta-freescale-layer / recipes-kernel / linux / linux-fslc-imx / 0004-drm-sched-Fix-passing-zero-to-PTR_ERR-warning-v2.patch
diff --git a/meta-agl-bsp/meta-freescale-layer/recipes-kernel/linux/linux-fslc-imx/0004-drm-sched-Fix-passing-zero-to-PTR_ERR-warning-v2.patch b/meta-agl-bsp/meta-freescale-layer/recipes-kernel/linux/linux-fslc-imx/0004-drm-sched-Fix-passing-zero-to-PTR_ERR-warning-v2.patch
new file mode 100644 (file)
index 0000000..8c141a0
--- /dev/null
@@ -0,0 +1,50 @@
+From d7c5782acd354bdb5ed0fa10e1e397eaed558390 Mon Sep 17 00:00:00 2001
+From: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
+Date: Tue, 29 Oct 2019 11:03:05 -0400
+Subject: [PATCH] drm/sched:  Fix passing zero to 'PTR_ERR' warning v2
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Fix a static code checker warning.
+
+v2: Drop PTR_ERR_OR_ZERO.
+
+Signed-off-by: Andrey Grodzovsky <andrey.grodzovsky@amd.com>
+Reviewed-by: Emily Deng <Emily.Deng@amd.com>
+Reviewed-by: Christian König <christian.koenig@amd.com>
+Signed-off-by: Alex Deucher <alexander.deucher@amd.com>
+---
+ drivers/gpu/drm/scheduler/sched_main.c | 7 +++++--
+ 1 file changed, 5 insertions(+), 2 deletions(-)
+
+diff --git a/drivers/gpu/drm/scheduler/sched_main.c b/drivers/gpu/drm/scheduler/sched_main.c
+index 2af64459b3d7..fbb6446c4f69 100644
+--- a/drivers/gpu/drm/scheduler/sched_main.c
++++ b/drivers/gpu/drm/scheduler/sched_main.c
+@@ -496,8 +496,10 @@ void drm_sched_resubmit_jobs(struct drm_gpu_scheduler *sched)
+               fence = sched->ops->run_job(s_job);
+               if (IS_ERR_OR_NULL(fence)) {
++                      if (IS_ERR(fence))
++                              dma_fence_set_error(&s_fence->finished, PTR_ERR(fence));
++
+                       s_job->s_fence->parent = NULL;
+-                      dma_fence_set_error(&s_fence->finished, PTR_ERR(fence));
+               } else {
+                       s_job->s_fence->parent = fence;
+               }
+@@ -746,8 +748,9 @@ static int drm_sched_main(void *param)
+                                         r);
+                       dma_fence_put(fence);
+               } else {
++                      if (IS_ERR(fence))
++                              dma_fence_set_error(&s_fence->finished, PTR_ERR(fence));
+-                      dma_fence_set_error(&s_fence->finished, PTR_ERR(fence));
+                       drm_sched_process_job(NULL, &sched_job->cb);
+               }
+-- 
+2.20.1
+