aboutsummaryrefslogtreecommitdiffstats
path: root/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1867-drm-amd-display-Use-long-for-signed-error-code-check.patch
diff options
context:
space:
mode:
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1867-drm-amd-display-Use-long-for-signed-error-code-check.patch')
-rw-r--r--meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1867-drm-amd-display-Use-long-for-signed-error-code-check.patch58
1 files changed, 58 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1867-drm-amd-display-Use-long-for-signed-error-code-check.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1867-drm-amd-display-Use-long-for-signed-error-code-check.patch
new file mode 100644
index 00000000..47eba4ef
--- /dev/null
+++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/1867-drm-amd-display-Use-long-for-signed-error-code-check.patch
@@ -0,0 +1,58 @@
+From 041c640dc93c6c6c0205fe7a10972c3a2732b6cf Mon Sep 17 00:00:00 2001
+From: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
+Date: Thu, 2 May 2019 09:14:27 -0400
+Subject: [PATCH 1867/2940] drm/amd/display: Use long for signed error code
+ checks in commit planes
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+[Why]
+
+The type of 'r' is uint32_t and the return codes for both:
+
+- reservation_object_wait_timeout_rcu
+- amdgpu_bo_reserve
+
+...are signed. While it works for the latter since the check is
+done on != 0 it doesn't work for the former since we check <= 0.
+
+[How]
+
+Make 'r' a long in commit planes so we're not doing any unsigned/signed
+conversion here in the first place.
+
+v2: use long instead of int (Christian)
+
+Change-Id: I6b44298591544a0f650f95db0fdf28779a104e3d
+Reported-by: Dan Carpenter <dan.carpenter@oracle.com>
+Signed-off-by: Nicholas Kazlauskas <nicholas.kazlauskas@amd.com>
+Reviewed-by: Christian König <christian.koenig@amd.com>
+---
+ drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c | 3 ++-
+ 1 file changed, 2 insertions(+), 1 deletion(-)
+
+diff --git a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+index a7f9d13b41cd..312e1fc71b47 100644
+--- a/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
++++ b/drivers/gpu/drm/amd/display/amdgpu_dm/amdgpu_dm.c
+@@ -5361,7 +5361,7 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
+ struct drm_crtc *pcrtc,
+ bool wait_for_vblank)
+ {
+- uint32_t i, r;
++ uint32_t i;
+ uint64_t timestamp_ns;
+ struct drm_plane *plane;
+ struct drm_plane_state *old_plane_state, *new_plane_state;
+@@ -5372,6 +5372,7 @@ static void amdgpu_dm_commit_planes(struct drm_atomic_state *state,
+ struct dm_crtc_state *dm_old_crtc_state =
+ to_dm_crtc_state(drm_atomic_get_old_crtc_state(state, pcrtc));
+ int planes_count = 0, vpos, hpos;
++ long r;
+ unsigned long flags;
+ struct amdgpu_bo *abo;
+ uint64_t tiling_flags;
+--
+2.17.1
+