drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c:3364:5: warning: stack frame size (2208) exceeds limit (2048) in 'psp_init_ta_microcode'

From: kernel test robot
Date: Thu Jun 29 2023 - 14:19:41 EST


tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 3a8a670eeeaa40d87bd38a587438952741980c18
commit: 994a97447e38182f530f246117a882c074d02af7 drm/amd: Parse both v1 and v2 TA microcode headers using same function
date: 6 months ago
config: arm64-randconfig-r026-20230629 (https://download.01.org/0day-ci/archive/20230630/202306300240.df8pU5Dy-lkp@xxxxxxxxx/config)
compiler: clang version 16.0.4 (https://github.com/llvm/llvm-project.git ae42196bc493ffe877a7e3dff8be32035dea4d07)
reproduce: (https://download.01.org/0day-ci/archive/20230630/202306300240.df8pU5Dy-lkp@xxxxxxxxx/reproduce)

If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Closes: https://lore.kernel.org/oe-kbuild-all/202306300240.df8pU5Dy-lkp@xxxxxxxxx/

All warnings (new ones prefixed by >>):

drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c:3116:5: warning: stack frame size (2688) exceeds limit (2048) in 'psp_init_sos_microcode' [-Wframe-larger-than]
int psp_init_sos_microcode(struct psp_context *psp,
^
2603/2688 (96.84%) spills, 85/2688 (3.16%) variables
>> drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c:3364:5: warning: stack frame size (2208) exceeds limit (2048) in 'psp_init_ta_microcode' [-Wframe-larger-than]
int psp_init_ta_microcode(struct psp_context *psp, const char *chip_name)
^
2114/2208 (95.74%) spills, 94/2208 (4.26%) variables
2 warnings generated.


vim +/psp_init_ta_microcode +3364 drivers/gpu/drm/amd/amdgpu/amdgpu_psp.c

3363
> 3364 int psp_init_ta_microcode(struct psp_context *psp, const char *chip_name)
3365 {
3366 const struct common_firmware_header *hdr;
3367 struct amdgpu_device *adev = psp->adev;
3368 char fw_name[PSP_FW_NAME_LEN];
3369 int err;
3370
3371 snprintf(fw_name, sizeof(fw_name), "amdgpu/%s_ta.bin", chip_name);
3372 err = request_firmware(&adev->psp.ta_fw, fw_name, adev->dev);
3373 if (err)
3374 return err;
3375 err = amdgpu_ucode_validate(adev->psp.ta_fw);
3376 if (err)
3377 return err;
3378
3379 hdr = (const struct common_firmware_header *)adev->psp.ta_fw->data;
3380 switch (le16_to_cpu(hdr->header_version_major)) {
3381 case 1:
3382 err = parse_ta_v1_microcode(psp);
3383 break;
3384 case 2:
3385 err = parse_ta_v2_microcode(psp);
3386 break;
3387 default:
3388 dev_err(adev->dev, "unsupported TA header version\n");
3389 err = -EINVAL;
3390 }
3391
3392 if (err) {
3393 dev_err(adev->dev, "fail to initialize ta microcode\n");
3394 release_firmware(adev->psp.ta_fw);
3395 adev->psp.ta_fw = NULL;
3396 }
3397
3398 return err;
3399 }
3400

--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki