lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <202504020813.vjg3Thjg-lkp@intel.com>
Date: Wed, 2 Apr 2025 09:09:54 +0800
From: kernel test robot <lkp@...el.com>
To: Alexandru Dadu <alexandru.dadu@...tec.com>,
	Frank Binns <frank.binns@...tec.com>,
	Matt Coster <matt.coster@...tec.com>,
	Maarten Lankhorst <maarten.lankhorst@...ux.intel.com>,
	Maxime Ripard <mripard@...nel.org>,
	Thomas Zimmermann <tzimmermann@...e.de>,
	David Airlie <airlied@...il.com>, Simona Vetter <simona@...ll.ch>
Cc: oe-kbuild-all@...ts.linux.dev, dri-devel@...ts.freedesktop.org,
	linux-kernel@...r.kernel.org,
	Alexandru Dadu <alexandru.dadu@...tec.com>
Subject: Re: [PATCH] drm/imagination: loop counters moved to loop scope

Hi Alexandru,

kernel test robot noticed the following build warnings:

[auto build test WARNING on 2f9d51740cc30e0d2c8a23a55b1e20cf2513c250]

url:    https://github.com/intel-lab-lkp/linux/commits/Alexandru-Dadu/drm-imagination-loop-counters-moved-to-loop-scope/20250401-204252
base:   2f9d51740cc30e0d2c8a23a55b1e20cf2513c250
patch link:    https://lore.kernel.org/r/20250401-for-loop-counter-scope-v1-1-5ba75770be52%40imgtec.com
patch subject: [PATCH] drm/imagination: loop counters moved to loop scope
config: arm64-randconfig-002-20250402 (https://download.01.org/0day-ci/archive/20250402/202504020813.vjg3Thjg-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 7.5.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20250402/202504020813.vjg3Thjg-lkp@intel.com/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@...el.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202504020813.vjg3Thjg-lkp@intel.com/

All warnings (new ones prefixed by >>):

   drivers/gpu/drm/imagination/pvr_fw.c: In function 'pvr_fw_validate':
>> drivers/gpu/drm/imagination/pvr_fw.c:98:6: warning: unused variable 'entry' [-Wunused-variable]
     u32 entry;
         ^~~~~


vim +/entry +98 drivers/gpu/drm/imagination/pvr_fw.c

cc1aeedb98ad34 Sarah Walker   2023-11-22   79  
f99f5f3ea7efd5 Sarah Walker   2023-11-22   80  /**
f99f5f3ea7efd5 Sarah Walker   2023-11-22   81   * pvr_fw_validate() - Parse firmware header and check compatibility
f99f5f3ea7efd5 Sarah Walker   2023-11-22   82   * @pvr_dev: Device pointer.
f99f5f3ea7efd5 Sarah Walker   2023-11-22   83   *
f99f5f3ea7efd5 Sarah Walker   2023-11-22   84   * Returns:
f99f5f3ea7efd5 Sarah Walker   2023-11-22   85   *  * 0 on success, or
f99f5f3ea7efd5 Sarah Walker   2023-11-22   86   *  * -EINVAL if firmware is incompatible.
f99f5f3ea7efd5 Sarah Walker   2023-11-22   87   */
f99f5f3ea7efd5 Sarah Walker   2023-11-22   88  static int
f99f5f3ea7efd5 Sarah Walker   2023-11-22   89  pvr_fw_validate(struct pvr_device *pvr_dev)
f99f5f3ea7efd5 Sarah Walker   2023-11-22   90  {
f99f5f3ea7efd5 Sarah Walker   2023-11-22   91  	struct drm_device *drm_dev = from_pvr_device(pvr_dev);
f99f5f3ea7efd5 Sarah Walker   2023-11-22   92  	const struct firmware *firmware = pvr_dev->fw_dev.firmware;
f99f5f3ea7efd5 Sarah Walker   2023-11-22   93  	const struct pvr_fw_layout_entry *layout_entries;
f99f5f3ea7efd5 Sarah Walker   2023-11-22   94  	const struct pvr_fw_info_header *header;
f99f5f3ea7efd5 Sarah Walker   2023-11-22   95  	const u8 *fw = firmware->data;
f99f5f3ea7efd5 Sarah Walker   2023-11-22   96  	u32 fw_offset = firmware->size - SZ_4K;
f99f5f3ea7efd5 Sarah Walker   2023-11-22   97  	u32 layout_table_size;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  @98  	u32 entry;
f99f5f3ea7efd5 Sarah Walker   2023-11-22   99  
f99f5f3ea7efd5 Sarah Walker   2023-11-22  100  	if (firmware->size < SZ_4K || (firmware->size % FW_BLOCK_SIZE))
f99f5f3ea7efd5 Sarah Walker   2023-11-22  101  		return -EINVAL;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  102  
f99f5f3ea7efd5 Sarah Walker   2023-11-22  103  	header = (const struct pvr_fw_info_header *)&fw[fw_offset];
f99f5f3ea7efd5 Sarah Walker   2023-11-22  104  
f99f5f3ea7efd5 Sarah Walker   2023-11-22  105  	if (header->info_version != PVR_FW_INFO_VERSION) {
f99f5f3ea7efd5 Sarah Walker   2023-11-22  106  		drm_err(drm_dev, "Unsupported fw info version %u\n",
f99f5f3ea7efd5 Sarah Walker   2023-11-22  107  			header->info_version);
f99f5f3ea7efd5 Sarah Walker   2023-11-22  108  		return -EINVAL;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  109  	}
f99f5f3ea7efd5 Sarah Walker   2023-11-22  110  
f99f5f3ea7efd5 Sarah Walker   2023-11-22  111  	if (header->header_len != sizeof(struct pvr_fw_info_header) ||
f99f5f3ea7efd5 Sarah Walker   2023-11-22  112  	    header->layout_entry_size != sizeof(struct pvr_fw_layout_entry) ||
f99f5f3ea7efd5 Sarah Walker   2023-11-22  113  	    header->layout_entry_num > PVR_FW_INFO_MAX_NUM_ENTRIES) {
f99f5f3ea7efd5 Sarah Walker   2023-11-22  114  		drm_err(drm_dev, "FW info format mismatch\n");
f99f5f3ea7efd5 Sarah Walker   2023-11-22  115  		return -EINVAL;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  116  	}
f99f5f3ea7efd5 Sarah Walker   2023-11-22  117  
f99f5f3ea7efd5 Sarah Walker   2023-11-22  118  	if (!(header->flags & PVR_FW_FLAGS_OPEN_SOURCE) ||
f99f5f3ea7efd5 Sarah Walker   2023-11-22  119  	    header->fw_version_major > FW_MAX_SUPPORTED_MAJOR_VERSION ||
f99f5f3ea7efd5 Sarah Walker   2023-11-22  120  	    header->fw_version_major == 0) {
f99f5f3ea7efd5 Sarah Walker   2023-11-22  121  		drm_err(drm_dev, "Unsupported FW version %u.%u (build: %u%s)\n",
f99f5f3ea7efd5 Sarah Walker   2023-11-22  122  			header->fw_version_major, header->fw_version_minor,
f99f5f3ea7efd5 Sarah Walker   2023-11-22  123  			header->fw_version_build,
f99f5f3ea7efd5 Sarah Walker   2023-11-22  124  			(header->flags & PVR_FW_FLAGS_OPEN_SOURCE) ? " OS" : "");
f99f5f3ea7efd5 Sarah Walker   2023-11-22  125  		return -EINVAL;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  126  	}
f99f5f3ea7efd5 Sarah Walker   2023-11-22  127  
f99f5f3ea7efd5 Sarah Walker   2023-11-22  128  	if (pvr_gpu_id_to_packed_bvnc(&pvr_dev->gpu_id) != header->bvnc) {
f99f5f3ea7efd5 Sarah Walker   2023-11-22  129  		struct pvr_gpu_id fw_gpu_id;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  130  
f99f5f3ea7efd5 Sarah Walker   2023-11-22  131  		packed_bvnc_to_pvr_gpu_id(header->bvnc, &fw_gpu_id);
f99f5f3ea7efd5 Sarah Walker   2023-11-22  132  		drm_err(drm_dev, "FW built for incorrect GPU ID %i.%i.%i.%i (expected %i.%i.%i.%i)\n",
f99f5f3ea7efd5 Sarah Walker   2023-11-22  133  			fw_gpu_id.b, fw_gpu_id.v, fw_gpu_id.n, fw_gpu_id.c,
f99f5f3ea7efd5 Sarah Walker   2023-11-22  134  			pvr_dev->gpu_id.b, pvr_dev->gpu_id.v, pvr_dev->gpu_id.n, pvr_dev->gpu_id.c);
f99f5f3ea7efd5 Sarah Walker   2023-11-22  135  		return -EINVAL;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  136  	}
f99f5f3ea7efd5 Sarah Walker   2023-11-22  137  
f99f5f3ea7efd5 Sarah Walker   2023-11-22  138  	fw_offset += header->header_len;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  139  	layout_table_size =
f99f5f3ea7efd5 Sarah Walker   2023-11-22  140  		header->layout_entry_size * header->layout_entry_num;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  141  	if ((fw_offset + layout_table_size) > firmware->size)
f99f5f3ea7efd5 Sarah Walker   2023-11-22  142  		return -EINVAL;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  143  
f99f5f3ea7efd5 Sarah Walker   2023-11-22  144  	layout_entries = (const struct pvr_fw_layout_entry *)&fw[fw_offset];
318bb30bc58c60 Alexandru Dadu 2025-04-01  145  	for (u32 entry = 0; entry < header->layout_entry_num; entry++) {
f99f5f3ea7efd5 Sarah Walker   2023-11-22  146  		u32 start_addr = layout_entries[entry].base_addr;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  147  		u32 end_addr = start_addr + layout_entries[entry].alloc_size;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  148  
f99f5f3ea7efd5 Sarah Walker   2023-11-22  149  		if (start_addr >= end_addr)
f99f5f3ea7efd5 Sarah Walker   2023-11-22  150  			return -EINVAL;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  151  	}
f99f5f3ea7efd5 Sarah Walker   2023-11-22  152  
f99f5f3ea7efd5 Sarah Walker   2023-11-22  153  	fw_offset = (firmware->size - SZ_4K) - header->device_info_size;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  154  
f99f5f3ea7efd5 Sarah Walker   2023-11-22  155  	drm_info(drm_dev, "FW version v%u.%u (build %u OS)\n", header->fw_version_major,
f99f5f3ea7efd5 Sarah Walker   2023-11-22  156  		 header->fw_version_minor, header->fw_version_build);
f99f5f3ea7efd5 Sarah Walker   2023-11-22  157  
f99f5f3ea7efd5 Sarah Walker   2023-11-22  158  	pvr_dev->fw_version.major = header->fw_version_major;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  159  	pvr_dev->fw_version.minor = header->fw_version_minor;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  160  
f99f5f3ea7efd5 Sarah Walker   2023-11-22  161  	pvr_dev->fw_dev.header = header;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  162  	pvr_dev->fw_dev.layout_entries = layout_entries;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  163  
f99f5f3ea7efd5 Sarah Walker   2023-11-22  164  	return 0;
f99f5f3ea7efd5 Sarah Walker   2023-11-22  165  }
f99f5f3ea7efd5 Sarah Walker   2023-11-22  166  

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ