Re: [PATCH v4 2/8] ACPI: property: Parse _CRS CSI-2 descriptor

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Hi Sakari,

I love your patch! Perhaps something to improve:

[auto build test WARNING on rafael-pm/linux-next]
[also build test WARNING on sailus-media-tree/streams linus/master v6.2-rc7 next-20230208]
[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/Sakari-Ailus/ACPI-property-Parse-data-node-string-references-in-properties/20230208-233112
base:   https://git.kernel.org/pub/scm/linux/kernel/git/rafael/linux-pm.git linux-next
patch link:    https://lore.kernel.org/r/20230208152807.3064242-3-sakari.ailus%40linux.intel.com
patch subject: [PATCH v4 2/8] ACPI: property: Parse _CRS CSI-2 descriptor
config: x86_64-rhel-8.3-kselftests (https://download.01.org/0day-ci/archive/20230209/202302090442.og7NHYTZ-lkp@xxxxxxxxx/config)
compiler: gcc-11 (Debian 11.3.0-8) 11.3.0
reproduce (this is a W=1 build):
        # https://github.com/intel-lab-lkp/linux/commit/d78f47f2d5051c50bdcea131da1779ec0fc8e266
        git remote add linux-review https://github.com/intel-lab-lkp/linux
        git fetch --no-tags linux-review Sakari-Ailus/ACPI-property-Parse-data-node-string-references-in-properties/20230208-233112
        git checkout d78f47f2d5051c50bdcea131da1779ec0fc8e266
        # save the config file
        mkdir build_dir && cp config build_dir/.config
        make W=1 O=build_dir ARCH=x86_64 olddefconfig
        make W=1 O=build_dir ARCH=x86_64 SHELL=/bin/bash drivers/acpi/

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@xxxxxxxxx>
| Link: https://lore.kernel.org/oe-kbuild-all/20230208152807.3064242-3-sakari.ailus@xxxxxxxxxxxxxxx

All warnings (new ones prefixed by >>):

>> drivers/acpi/mipi.c:205:6: warning: no previous prototype for 'acpi_crs_csi2_alloc_fill_swnodes' [-Wmissing-prototypes]
     205 | void acpi_crs_csi2_alloc_fill_swnodes(size_t ports_count, acpi_handle handle)
         |      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~


vim +/acpi_crs_csi2_alloc_fill_swnodes +205 drivers/acpi/mipi.c

   200	
   201	/*
   202	 * Allocate memory and set up software nodes for an ACPI device with given
   203	 * number of CSI-2 ports.
   204	 */
 > 205	void acpi_crs_csi2_alloc_fill_swnodes(size_t ports_count, acpi_handle handle)
   206	{
   207		struct acpi_device_software_nodes *ads;
   208		struct crs_csi2_swnodes *swnodes;
   209		size_t alloc_size;
   210		unsigned int i;
   211		bool overflow;
   212		void *end;
   213	
   214		/*
   215		 * Allocate memory for ports, node pointers (number of nodes +
   216		 * 1 (guardian), nodes (root + number of ports * 2 (for for
   217		 * every port there is an endpoint)).
   218		 */
   219		overflow = check_mul_overflow(sizeof(*ads->ports) +
   220					      sizeof(*ads->nodes) * 2 +
   221					      sizeof(*ads->nodeptrs) * 2,
   222					      ports_count, &alloc_size);
   223		overflow = overflow ||
   224			   check_add_overflow(sizeof(*ads) + sizeof(*ads->nodes) +
   225					      sizeof(*ads->nodeptrs) * 2,
   226					      alloc_size, &alloc_size);
   227		if (overflow) {
   228			acpi_handle_warn(handle,
   229					 "too many _CRS CSI2 resource handles (%zu)",
   230					 ports_count);
   231			return;
   232		}
   233	
   234		swnodes = kzalloc(sizeof(*swnodes), GFP_KERNEL);
   235		ads = kzalloc(alloc_size, GFP_KERNEL);
   236		ads->ports = (void *)(ads + 1);
   237		ads->nodes = (void *)(ads->ports + ports_count);
   238		ads->nodeptrs = (void *)(ads->nodes +
   239					 ports_count * 2 + 1);
   240		end = ads->nodeptrs + ports_count * 2 + 2;
   241		if (!swnodes || !ads || WARN_ON((void *)ads + alloc_size != end)) {
   242			kfree(swnodes);
   243			kfree(ads);
   244			acpi_handle_debug(handle,
   245					  "cannot allocate for %zu software nodes\n",
   246					  ports_count);
   247			return;
   248		}
   249	
   250		ads->num_ports = ports_count;
   251		for (i = 0; i < ports_count * 2 + 1; i++)
   252			ads->nodeptrs[i] = &ads->nodes[i];
   253		ads->nodeptrs[i] = NULL;
   254		for (i = 0; i < ports_count; i++)
   255			ads->ports[i].port_nr = NO_CSI2_PORT;
   256		swnodes->handle = handle;
   257		swnodes->ads = ads;
   258		list_add(&swnodes->list, &crs_csi2_swnodes);
   259	}
   260	

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



[Index of Archives]     [Linux Input]     [Video for Linux]     [Gstreamer Embedded]     [Mplayer Users]     [Linux USB Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [Yosemite Backpacking]

  Powered by Linux