CC: l...@lists.linux.dev CC: kbuild-...@lists.01.org BCC: l...@intel.com CC: Linux Memory Management List <linux...@kvack.org> TO: Evan Quan <evan.q...@amd.com> CC: Alex Deucher <alexander.deuc...@amd.com> CC: Lijo Lazar <lijo.la...@amd.com>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master head: 71941773e143369a73c9c4a3b62fbb60736a1182 commit: 837d542a09cd533055423dfca7e621a9c1d13c5b [434/11953] drm/amd/pm: relocate the power related headers :::::: branch date: 2 days ago :::::: commit date: 8 weeks ago config: riscv-randconfig-c006-20220310 (https://download.01.org/0day-ci/archive/20220312/202203122319.w1ijwemm-...@intel.com/config) compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 276ca87382b8f16a65bddac700202924228982f6) reproduce (this is a W=1 build): wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # install riscv cross compiling tool for clang build # apt-get install binutils-riscv64-linux-gnu # https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git/commit/?id=837d542a09cd533055423dfca7e621a9c1d13c5b git remote add linux-next https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git git fetch --no-tags linux-next master git checkout 837d542a09cd533055423dfca7e621a9c1d13c5b # save the config file to linux build tree COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer If you fix the issue, kindly add following tag as appropriate Reported-by: kernel test robot <l...@intel.com> clang-analyzer warnings: (new ones prefixed by >>) drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:153:2: note: Returning without writing to '*min' return ret; ^ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:153:2: note: Returning zero (loaded from 'ret'), which participates in a condition later return ret; ^~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:162:8: note: Returning from 'smu_get_dpm_freq_range' ret = smu_get_dpm_freq_range(smu, SMU_UCLK, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:165:6: note: 'ret' is 0 if (ret) ^~~ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:165:2: note: Taking false branch if (ret) ^ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:167:18: note: The left operand of '*' is a garbage value return clk_freq * 100; ~~~~~~~~ ^ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:181:18: warning: The left operand of '*' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult] return clk_freq * 100; ~~~~~~~~ ^ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:173:2: note: 'clk_freq' declared without an initial value uint32_t clk_freq; ^~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:177:10: note: Assuming 'low' is true low ? &clk_freq : NULL, ^~~ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:177:10: note: '?' condition is true drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:178:11: note: 'low' is true !low ? &clk_freq : NULL); ^~~ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:178:10: note: '?' condition is false !low ? &clk_freq : NULL); ^ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:176:8: note: Calling 'smu_get_dpm_freq_range' ret = smu_get_dpm_freq_range(smu, SMU_GFXCLK, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:140:7: note: 'min' is non-null if (!min && !max) ^~~ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:140:11: note: Left side of '&&' is false if (!min && !max) ^ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:145:6: note: Assuming field 'get_dpm_ultimate_freq' is null if (smu->ppt_funcs->get_dpm_ultimate_freq) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:145:2: note: Taking false branch if (smu->ppt_funcs->get_dpm_ultimate_freq) ^ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:153:2: note: Returning without writing to '*min' return ret; ^ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:153:2: note: Returning zero (loaded from 'ret'), which participates in a condition later return ret; ^~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:176:8: note: Returning from 'smu_get_dpm_freq_range' ret = smu_get_dpm_freq_range(smu, SMU_GFXCLK, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:179:6: note: 'ret' is 0 if (ret) ^~~ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:179:2: note: Taking false branch if (ret) ^ drivers/gpu/drm/amd/amdgpu/../pm/swsmu/amdgpu_smu.c:181:18: note: The left operand of '*' is a garbage value return clk_freq * 100; ~~~~~~~~ ^ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 13 warnings generated. drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:2570:21: warning: Access to field 'enable_dte' results in a dereference of a null pointer (loaded from variable 'si_pi') [clang-analyzer-core.NullDereference] si_pi->enable_dte = false; ~~~~~ ^ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:2561:32: note: Calling 'si_get_pi' struct si_power_info *si_pi = si_get_pi(adev); ^~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:1853:2: note: 'pi' initialized here struct si_power_info *pi = adev->pm.dpm.priv; ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:1854:2: note: Returning pointer (loaded from 'pi') return pi; ^~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:2561:32: note: Returning from 'si_get_pi' struct si_power_info *si_pi = si_get_pi(adev); ^~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:2561:2: note: 'si_pi' initialized here struct si_power_info *si_pi = si_get_pi(adev); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:2569:6: note: Assuming 'dte_data' is equal to NULL if (dte_data == NULL) ^~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:2569:2: note: Taking true branch if (dte_data == NULL) ^ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:2570:21: note: Access to field 'enable_dte' results in a dereference of a null pointer (loaded from variable 'si_pi') si_pi->enable_dte = false; ~~~~~ ^ >> drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:2927:5: warning: Value >> stored to 'smc_result' is never read [clang-analyzer-deadcode.DeadStores] smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_DisableDTE); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:2927:5: note: Value stored to 'smc_result' is never read smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_DisableDTE); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:2929:4: warning: Value stored to 'smc_result' is never read [clang-analyzer-deadcode.DeadStores] smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_DisableCac); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:2929:4: note: Value stored to 'smc_result' is never read smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_DisableCac); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:2934:5: warning: Value stored to 'smc_result' is never read [clang-analyzer-deadcode.DeadStores] smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_CACLongTermAvgDisable); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:2934:5: note: Value stored to 'smc_result' is never read smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_CACLongTermAvgDisable); ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ >> drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:4668:7: warning: Value >> stored to 'voltage_found' is never read [clang-analyzer-deadcode.DeadStores] voltage_found = true; ^ ~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c:4668:7: note: Value stored to 'voltage_found' is never read voltage_found = true; ^ ~~~~ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. drivers/gpu/drm/panel/panel-elida-kd35t133.c:65:17: warning: Value stored to 'dev' during its initialization is never read [clang-analyzer-deadcode.DeadStores] struct device *dev = ctx->dev; ^~~ ~~~~~~~~ drivers/gpu/drm/panel/panel-elida-kd35t133.c:65:17: note: Value stored to 'dev' during its initialization is never read struct device *dev = ctx->dev; ^~~ ~~~~~~~~ Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. Suppressed 4 warnings (4 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. drivers/gpu/drm/bridge/sii9234.c:764:2: warning: Value stored to 'intr1_en' is never read [clang-analyzer-deadcode.DeadStores] intr1_en = mhl_tx_readb(ctx, MHL_TX_INTR1_ENABLE_REG); ^ drivers/gpu/drm/bridge/sii9234.c:764:2: note: Value stored to 'intr1_en' is never read drivers/gpu/drm/bridge/sii9234.c:765:2: warning: Value stored to 'intr4_en' is never read [clang-analyzer-deadcode.DeadStores] intr4_en = mhl_tx_readb(ctx, MHL_TX_INTR4_ENABLE_REG); ^ drivers/gpu/drm/bridge/sii9234.c:765:2: note: Value stored to 'intr4_en' is never read Suppressed 6 warnings (5 in non-user code, 1 with check filters). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 5 warnings generated. Suppressed 5 warnings (5 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 35 warnings generated. drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gp100.c:37:15: warning: The result of the left shift is undefined due to shifting by '32', which is greater or equal to the width of type 'int' [clang-analyzer-core.UndefinedBinaryOperatorResult] mask &= ~(1 << c); ^ ~ drivers/gpu/drm/nouveau/nvkm/subdev/ltc/gp100.c:32:9: note: Calling 'ioread32' mask = nvkm_rd32(device, 0x0001c0); ^ drivers/gpu/drm/nouveau/include/nvkm/core/device.h:107:24: note: expanded from macro 'nvkm_rd32' #define nvkm_rd32(d,a) ioread32_native((d)->pri + (a)) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/nouveau/include/nvkm/core/os.h:14:26: note: expanded from macro 'ioread32_native' #define ioread32_native ioread32 ^ include/asm-generic/io.h:725:18: note: expanded from macro 'ioread32' #define ioread32 ioread32 ^ include/asm-generic/io.h:728:9: note: Loop condition is false. Exiting loop return readl(addr); ^ -- drivers/gpu/drm/amd/amdgpu/../amdgpu/amdgpu.h:1174:47: note: expanded from macro 'RREG32' #define RREG32(reg) amdgpu_device_rreg(adev, (reg), 0) ^~~ drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c:1000:3: warning: Value stored to 'tmp' is never read [clang-analyzer-deadcode.DeadStores] tmp = RREG32(mmSRBM_SOFT_RESET); ^ drivers/gpu/drm/amd/amdgpu/sdma_v2_4.c:1000:3: note: Value stored to 'tmp' is never read Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 2 warnings generated. Suppressed 2 warnings (2 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. fs/fscache/cache.c:47:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy] strcpy(xtag->name, name); ^~~~~~ fs/fscache/cache.c:47:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 strcpy(xtag->name, name); ^~~~~~ Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 3 warnings generated. Suppressed 3 warnings (3 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 10 warnings generated. drivers/gpu/drm/amd/amdgpu/../pm/powerplay/amd_powerplay.c:161:6: warning: Access to field 'hwmgr_func' results in a dereference of a null pointer (loaded from variable 'hwmgr') [clang-analyzer-core.NullDereference] if (hwmgr->hwmgr_func->notify_cac_buffer_info) ^ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/amd_powerplay.c:181:6: note: Assuming 'hwmgr' is null if (hwmgr && hwmgr->pm_en) { ^~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/amd_powerplay.c:181:12: note: Left side of '&&' is false if (hwmgr && hwmgr->pm_en) { ^ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/amd_powerplay.c:187:6: note: Assuming field 'smu_prv_buffer_size' is not equal to 0 if (adev->pm.smu_prv_buffer_size != 0) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/amd_powerplay.c:187:2: note: Taking true branch if (adev->pm.smu_prv_buffer_size != 0) ^ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/amd_powerplay.c:188:3: note: Calling 'pp_reserve_vram_for_smu' pp_reserve_vram_for_smu(adev); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/amd_powerplay.c:150:2: note: 'hwmgr' initialized to a null pointer value struct pp_hwmgr *hwmgr = adev->powerplay.pp_handle; ^~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/amd_powerplay.c:152:6: note: Assuming the condition is false if (amdgpu_bo_create_kernel(adev, adev->pm.smu_prv_buffer_size, ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/amd_powerplay.c:152:2: note: Taking false branch if (amdgpu_bo_create_kernel(adev, adev->pm.smu_prv_buffer_size, ^ drivers/gpu/drm/amd/amdgpu/../pm/powerplay/amd_powerplay.c:161:6: note: Access to field 'hwmgr_func' results in a dereference of a null pointer (loaded from variable 'hwmgr') if (hwmgr->hwmgr_func->notify_cac_buffer_info) ^~~~~ Suppressed 9 warnings (9 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 8 warnings generated. Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 10 warnings generated. >> drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1463:3: warning: Value >> stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores] ret = amdgpu_kv_copy_bytes_to_smc(adev, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1463:3: note: Value stored to 'ret' is never read ret = amdgpu_kv_copy_bytes_to_smc(adev, ^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1662:13: warning: The result of the left shift is undefined due to shifting by '255', which is greater or equal to the width of type 'int' [clang-analyzer-core.UndefinedBinaryOperatorResult] (1 << pi->acp_boot_level)); ^ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1950:6: note: Assuming field 'bapm_enable' is false if (pi->bapm_enable) { ^~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1950:2: note: Taking false branch if (pi->bapm_enable) { ^ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1958:6: note: Assuming field 'asic_type' is not equal to CHIP_KABINI if (adev->asic_type == CHIP_KABINI || adev->asic_type == CHIP_MULLINS) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1958:6: note: Left side of '||' is false drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1958:40: note: Assuming field 'asic_type' is not equal to CHIP_MULLINS if (adev->asic_type == CHIP_KABINI || adev->asic_type == CHIP_MULLINS) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1958:2: note: Taking false branch if (adev->asic_type == CHIP_KABINI || adev->asic_type == CHIP_MULLINS) { ^ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1988:7: note: Assuming field 'enable_dpm' is true if (pi->enable_dpm) { ^~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1988:3: note: Taking true branch if (pi->enable_dpm) { ^ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1992:8: note: Assuming 'ret' is 0 if (ret) { ^~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1992:4: note: Taking false branch if (ret) { ^ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:2004:8: note: Assuming 'ret' is 0 if (ret) { ^~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:2004:4: note: Taking false branch if (ret) { ^ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:2008:4: note: Calling 'kv_update_acp_boot_level' kv_update_acp_boot_level(adev); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1656:6: note: Assuming field 'caps_stable_p_state' is false if (!pi->caps_stable_p_state) { ^~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1656:2: note: Taking true branch if (!pi->caps_stable_p_state) { ^ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1657:20: note: Calling 'kv_get_acp_boot_level' acp_boot_level = kv_get_acp_boot_level(adev); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1640:14: note: Assuming 'i' is >= field 'count' for (i = 0; i < table->count; i++) { ^~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1640:2: note: Loop condition is false. Execution continues on line 1645 for (i = 0; i < table->count; i++) { ^ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1645:6: note: 'i' is >= field 'count' if (i >= table->count) ^ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1645:2: note: Taking true branch if (i >= table->count) ^ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1646:3: note: The value 255 is assigned to 'i' i = table->count - 1; ^~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1648:2: note: Returning the value 255 (loaded from 'i') return i; ^~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1657:20: note: Returning from 'kv_get_acp_boot_level' acp_boot_level = kv_get_acp_boot_level(adev); ^~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1657:3: note: The value 255 is assigned to 'acp_boot_level' acp_boot_level = kv_get_acp_boot_level(adev); ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1658:7: note: Assuming 'acp_boot_level' is not equal to field 'acp_boot_level' if (acp_boot_level != pi->acp_boot_level) { ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1658:3: note: Taking true branch if (acp_boot_level != pi->acp_boot_level) { ^ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1659:4: note: The value 255 is assigned to field 'acp_boot_level' pi->acp_boot_level = acp_boot_level; ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/kv_dpm.c:1662:13: note: The result of the left shift is undefined due to shifting by '255', which is greater or equal to the width of type 'int' (1 << pi->acp_boot_level)); ^ ~~~~~~~~~~~~~~~~~~ Suppressed 8 warnings (8 in non-user code). Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well. 4 warnings generated. drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c:379:27: warning: The result of the left shift is undefined because the left operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult] timing[2] = (T(CWL) - 1) << 24 | ^ drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c:515:6: note: Assuming field 'state' is not equal to NVA3_TRAIN_ONCE if (ram->ltrain.state == NVA3_TRAIN_ONCE) ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ drivers/gpu/drm/nouveau/nvkm/subdev/fb/ramgt215.c:515:2: note: Taking false branch vim +/smc_result +2927 drivers/gpu/drm/amd/amdgpu/../pm/legacy-dpm/si_dpm.c 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2892 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2893 static int si_enable_smc_cac(struct amdgpu_device *adev, 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2894 struct amdgpu_ps *amdgpu_new_state, 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2895 bool enable) 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2896 { 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2897 struct ni_power_info *ni_pi = ni_get_pi(adev); 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2898 struct si_power_info *si_pi = si_get_pi(adev); 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2899 PPSMC_Result smc_result; 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2900 int ret = 0; 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2901 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2902 if (ni_pi->enable_cac) { 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2903 if (enable) { 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2904 if (!si_should_disable_uvd_powertune(adev, amdgpu_new_state)) { 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2905 if (ni_pi->support_cac_long_term_average) { 6861c837e28e1b drivers/gpu/drm/amd/amdgpu/si_dpm.c Alex Deucher 2016-09-13 2906 smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_CACLongTermAvgEnable); 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2907 if (smc_result != PPSMC_Result_OK) 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2908 ni_pi->support_cac_long_term_average = false; 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2909 } 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2910 6861c837e28e1b drivers/gpu/drm/amd/amdgpu/si_dpm.c Alex Deucher 2016-09-13 2911 smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_EnableCac); 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2912 if (smc_result != PPSMC_Result_OK) { 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2913 ret = -EINVAL; 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2914 ni_pi->cac_enabled = false; 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2915 } else { 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2916 ni_pi->cac_enabled = true; 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2917 } 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2918 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2919 if (si_pi->enable_dte) { 6861c837e28e1b drivers/gpu/drm/amd/amdgpu/si_dpm.c Alex Deucher 2016-09-13 2920 smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_EnableDTE); 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2921 if (smc_result != PPSMC_Result_OK) 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2922 ret = -EINVAL; 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2923 } 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2924 } 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2925 } else if (ni_pi->cac_enabled) { 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2926 if (si_pi->enable_dte) 6861c837e28e1b drivers/gpu/drm/amd/amdgpu/si_dpm.c Alex Deucher 2016-09-13 @2927 smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_DisableDTE); 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2928 6861c837e28e1b drivers/gpu/drm/amd/amdgpu/si_dpm.c Alex Deucher 2016-09-13 2929 smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_MSG_DisableCac); 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2930 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2931 ni_pi->cac_enabled = false; 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2932 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2933 if (ni_pi->support_cac_long_term_average) 6861c837e28e1b drivers/gpu/drm/amd/amdgpu/si_dpm.c Alex Deucher 2016-09-13 2934 smc_result = amdgpu_si_send_msg_to_smc(adev, PPSMC_CACLongTermAvgDisable); 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2935 } 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2936 } 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2937 return ret; 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2938 } 841686df9f7d29 drivers/gpu/drm/amd/amdgpu/si_dpm.c Maruthi Bayyavarapu 2016-08-01 2939 :::::: The code at line 2927 was first introduced by commit :::::: 6861c837e28e1b1300a1b24ddab748c8ee50da3b drm/amdgpu/si/dpm: fix symbol conflicts with radeon :::::: TO: Alex Deucher <alexander.deuc...@amd.com> :::::: CC: Alex Deucher <alexander.deuc...@amd.com> --- 0-DAY CI Kernel Test Service https://lists.01.org/hyperkitty/list/kbuild-...@lists.01.org _______________________________________________ kbuild mailing list -- kbuild@lists.01.org To unsubscribe send an email to kbuild-le...@lists.01.org