diff options
Diffstat (limited to 'meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4595-drm-amdgpu-Ensure-ret-is-always-initialized-when-usi.patch')
-rw-r--r-- | meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4595-drm-amdgpu-Ensure-ret-is-always-initialized-when-usi.patch | 64 |
1 files changed, 64 insertions, 0 deletions
diff --git a/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4595-drm-amdgpu-Ensure-ret-is-always-initialized-when-usi.patch b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4595-drm-amdgpu-Ensure-ret-is-always-initialized-when-usi.patch new file mode 100644 index 00000000..3a317415 --- /dev/null +++ b/meta-amd-bsp/recipes-kernel/linux/linux-yocto-4.19.8/4595-drm-amdgpu-Ensure-ret-is-always-initialized-when-usi.patch @@ -0,0 +1,64 @@ +From 6c13d7d3ba65090b6817972126a06f380f8e20b8 Mon Sep 17 00:00:00 2001 +From: Nathan Chancellor <natechancellor@gmail.com> +Date: Sat, 23 Nov 2019 12:23:36 -0700 +Subject: [PATCH 4595/4736] drm/amdgpu: Ensure ret is always initialized when + using SOC15_WAIT_ON_RREG + +Commit b0f3cd3191cd ("drm/amdgpu: remove unnecessary JPEG2.0 code from +VCN2.0") introduced a new clang warning in the vcn_v2_0_stop function: + +../drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c:1082:2: warning: variable 'r' +is used uninitialized whenever 'while' loop exits because its condition +is false [-Wsometimes-uninitialized] + SOC15_WAIT_ON_RREG(VCN, 0, mmUVD_STATUS, UVD_STATUS__IDLE, 0x7, r); + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +../drivers/gpu/drm/amd/amdgpu/../amdgpu/soc15_common.h:55:10: note: +expanded from macro 'SOC15_WAIT_ON_RREG' + while ((tmp_ & (mask)) != (expected_value)) { \ + ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ +../drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c:1083:6: note: uninitialized use +occurs here + if (r) + ^ +../drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c:1082:2: note: remove the +condition if it is always true + SOC15_WAIT_ON_RREG(VCN, 0, mmUVD_STATUS, UVD_STATUS__IDLE, 0x7, r); + ^ +../drivers/gpu/drm/amd/amdgpu/../amdgpu/soc15_common.h:55:10: note: +expanded from macro 'SOC15_WAIT_ON_RREG' + while ((tmp_ & (mask)) != (expected_value)) { \ + ^ +../drivers/gpu/drm/amd/amdgpu/vcn_v2_0.c:1072:7: note: initialize the +variable 'r' to silence this warning + int r; + ^ + = 0 +1 warning generated. + +To prevent warnings like this from happening in the future, make the +SOC15_WAIT_ON_RREG macro initialize its ret variable before the while +loop that can time out. This macro's return value is always checked so +it should set ret in both the success and fail path. + +Link: https://github.com/ClangBuiltLinux/linux/issues/776 +Signed-off-by: Nathan Chancellor <natechancellor@gmail.com> +Signed-off-by: Alex Deucher <alexander.deucher@amd.com> +--- + drivers/gpu/drm/amd/amdgpu/soc15_common.h | 1 + + 1 file changed, 1 insertion(+) + +diff --git a/drivers/gpu/drm/amd/amdgpu/soc15_common.h b/drivers/gpu/drm/amd/amdgpu/soc15_common.h +index 839f186e1182..19e870c79896 100644 +--- a/drivers/gpu/drm/amd/amdgpu/soc15_common.h ++++ b/drivers/gpu/drm/amd/amdgpu/soc15_common.h +@@ -52,6 +52,7 @@ + uint32_t old_ = 0; \ + uint32_t tmp_ = RREG32(adev->reg_offset[ip##_HWIP][inst][reg##_BASE_IDX] + reg); \ + uint32_t loop = adev->usec_timeout; \ ++ ret = 0; \ + while ((tmp_ & (mask)) != (expected_value)) { \ + if (old_ != tmp_) { \ + loop = adev->usec_timeout; \ +-- +2.17.1 + |