Re: [PATCH v2] drm/amdgpu/discovery: validate table offset before IP discovery header cast
kernel test robot <[email protected]>
| Newsgroups | org.freedesktop.lists.amd-gfx,dev.linux.lists.llvm,dev.linux.lists.oe-kbuild-all,org.freedesktop.lists.dri-devel,org.kernel.vger.linux-kernel,org.kernel.vger.stable |
|---|---|
| Message-ID | <[email protected]> |
Hi Pavitra, kernel test robot noticed the following build errors: [auto build test ERROR on drm-misc/drm-misc-next] [also build test ERROR on linus/master v7.2-rc7 next-20260811] [If your patch is applied to the wrong git tree, kindly drop us a note. And when submitting patch, we suggest to use '--base' as documented in https://git-scm.com/docs/git-format-patch#_base_tree_information] url: https://github.com/intel-lab-lkp/linux/commits/Pavitra-Jha/drm-amdgpu-discovery-validate-table-offset-before-IP-discovery-header-cast/20260812-100224 base: https://gitlab.freedesktop.org/drm/misc/kernel.git drm-misc-next patch link: https://lore.kernel.org/r/20260708061835.111986-1-jhapavitra98%40gmail.com patch subject: [PATCH v2] drm/amdgpu/discovery: validate table offset before IP discovery header cast config: loongarch-defconfig (https://download.01.org/0day-ci/archive/20260813/[email protected]/config) compiler: clang version 24.0.0git (https://github.com/llvm/llvm-project 12df34b8469b8095359de8c249cb1b2753fadeea) reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260813/[email protected]/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 <[email protected]> | Closes: https://lore.kernel.org/oe-kbuild-all/[email protected]/ All errors (new ones prefixed by >>): >> drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c:534:25: error: member reference type 'struct table_info' is not a pointer; did you mean to use '.'? 534 | if (le16_to_cpu((*info)->offset) >= adev->discovery.size) { | ~~~~~~~^~ | . include/linux/byteorder/generic.h:91:21: note: expanded from macro 'le16_to_cpu' 91 | #define le16_to_cpu __le16_to_cpu | ^ include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu' 37 | #define __le16_to_cpu(x) ((__force __u16)(__le16)(x)) | ^ drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c:536:23: error: member reference type 'struct table_info' is not a pointer; did you mean to use '.'? 536 | le16_to_cpu((*info)->offset), table_id); | ~~~~~~~^~ | . include/linux/dev_printk.h:154:65: note: expanded from macro 'dev_err' 154 | dev_printk_index_wrap(_dev_err, KERN_ERR, dev, dev_fmt(fmt), ##__VA_ARGS__) | ^~~~~~~~~~~ include/linux/dev_printk.h:110:23: note: expanded from macro 'dev_printk_index_wrap' 110 | _p_func(dev, fmt, ##__VA_ARGS__); \ | ^~~~~~~~~~~ include/uapi/linux/byteorder/little_endian.h:37:51: note: expanded from macro '__le16_to_cpu' 37 | #define __le16_to_cpu(x) ((__force __u16)(__le16)(x)) | ^ >> drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c:536:34: error: use of undeclared identifier 'table_id' 536 | le16_to_cpu((*info)->offset), table_id); | ^~~~~~~~ 3 errors generated. vim +534 drivers/gpu/drm/amd/amdgpu/amdgpu_discovery.c 508 509 static int amdgpu_discovery_verify_npsinfo(struct amdgpu_device *adev, 510 struct table_info *info) 511 { 512 uint8_t *discovery_bin = adev->discovery.bin; 513 uint16_t checksum; 514 uint16_t offset; 515 516 offset = le16_to_cpu(info->offset); 517 checksum = le16_to_cpu(info->checksum); 518 519 struct nps_info_header *nhdr = 520 (struct nps_info_header *)(discovery_bin + offset); 521 522 if (le32_to_cpu(nhdr->table_id) != NPS_INFO_TABLE_ID) { 523 dev_dbg(adev->dev, "invalid ip discovery nps info table id\n"); 524 return -EINVAL; 525 } 526 527 if (!amdgpu_discovery_verify_checksum(adev, discovery_bin + offset, 528 le32_to_cpu(nhdr->size_bytes), 529 checksum)) { 530 dev_dbg(adev->dev, "invalid nps info data table checksum\n"); 531 return -EINVAL; 532 } 533 > 534 if (le16_to_cpu((*info)->offset) >= adev->discovery.size) { 535 dev_err(adev->dev, "invalid table offset %u for table_id %u\n", > 536 le16_to_cpu((*info)->offset), table_id); 537 return -EINVAL; 538 } 539 540 return 0; 541 } 542 -- 0-DAY CI Kernel Test Service https://github.com/intel/lkp-tests/wiki