All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: drivers/iio/industrialio-gts-helper.c:394 iio_gts_build_avail_time_table() warn: double check that we're allocating correct size: 4 vs 8
Date: Tue, 6 Jun 2023 12:10:30 +0800	[thread overview]
Message-ID: <202306061239.AIaDBsVg-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: linux-kernel@vger.kernel.org
TO: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>, Matti Vaittinen <mazziesaccount@gmail.com>
CC: Jonathan Cameron <Jonathan.Cameron@huawei.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   f8dba31b0a826e691949cd4fdfa5c30defaac8c5
commit: e65065132fa6d9e1fd3b7418eae5215e3b7bf6c7 iio: gts-helpers: fix integration time units
date:   3 weeks ago
:::::: branch date: 13 hours ago
:::::: commit date: 3 weeks ago
config: x86_64-randconfig-m001-20230605 (https://download.01.org/0day-ci/archive/20230606/202306061239.AIaDBsVg-lkp@intel.com/config)
compiler: gcc-12 (Debian 12.2.0-14) 12.2.0

If you fix the issue, kindly add following tag where applicable
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202306061239.AIaDBsVg-lkp@intel.com/

New smatch warnings:
drivers/iio/industrialio-gts-helper.c:394 iio_gts_build_avail_time_table() warn: double check that we're allocating correct size: 4 vs 8

Old smatch warnings:
drivers/iio/industrialio-gts-helper.c:246 gain_to_scaletables() warn: double check that we're allocating correct size: 4 vs 8
drivers/iio/industrialio-gts-helper.c:269 gain_to_scaletables() error: uninitialized symbol 'ret'.
drivers/iio/industrialio-gts-helper.c:302 iio_gts_build_avail_scale_table() warn: double check that we're allocating correct size: 4 vs 8

vim +394 drivers/iio/industrialio-gts-helper.c

e65065132fa6d9 Matti Vaittinen 2023-04-17  350  
38416c28e16890 Matti Vaittinen 2023-03-31  351  /**
38416c28e16890 Matti Vaittinen 2023-03-31  352   * iio_gts_build_avail_time_table - build table of available integration times
38416c28e16890 Matti Vaittinen 2023-03-31  353   * @gts:	Gain time scale descriptor
38416c28e16890 Matti Vaittinen 2023-03-31  354   *
38416c28e16890 Matti Vaittinen 2023-03-31  355   * Build the table which can represent the available times to be returned
38416c28e16890 Matti Vaittinen 2023-03-31  356   * to users using the read_avail-callback.
38416c28e16890 Matti Vaittinen 2023-03-31  357   *
38416c28e16890 Matti Vaittinen 2023-03-31  358   * NOTE: Space allocated for the tables must be freed using
38416c28e16890 Matti Vaittinen 2023-03-31  359   * iio_gts_purge_avail_time_table() when the tables are no longer needed.
38416c28e16890 Matti Vaittinen 2023-03-31  360   *
38416c28e16890 Matti Vaittinen 2023-03-31  361   * Return: 0 on success.
38416c28e16890 Matti Vaittinen 2023-03-31  362   */
38416c28e16890 Matti Vaittinen 2023-03-31  363  static int iio_gts_build_avail_time_table(struct iio_gts *gts)
38416c28e16890 Matti Vaittinen 2023-03-31  364  {
e65065132fa6d9 Matti Vaittinen 2023-04-17  365  	int *times, i, j, idx = 0, *int_micro_times;
38416c28e16890 Matti Vaittinen 2023-03-31  366  
38416c28e16890 Matti Vaittinen 2023-03-31  367  	if (!gts->num_itime)
38416c28e16890 Matti Vaittinen 2023-03-31  368  		return 0;
38416c28e16890 Matti Vaittinen 2023-03-31  369  
38416c28e16890 Matti Vaittinen 2023-03-31  370  	times = kcalloc(gts->num_itime, sizeof(int), GFP_KERNEL);
38416c28e16890 Matti Vaittinen 2023-03-31  371  	if (!times)
38416c28e16890 Matti Vaittinen 2023-03-31  372  		return -ENOMEM;
38416c28e16890 Matti Vaittinen 2023-03-31  373  
38416c28e16890 Matti Vaittinen 2023-03-31  374  	/* Sort times from all tables to one and remove duplicates */
38416c28e16890 Matti Vaittinen 2023-03-31  375  	for (i = gts->num_itime - 1; i >= 0; i--) {
38416c28e16890 Matti Vaittinen 2023-03-31  376  		int new = gts->itime_table[i].time_us;
38416c28e16890 Matti Vaittinen 2023-03-31  377  
38416c28e16890 Matti Vaittinen 2023-03-31  378  		if (times[idx] < new) {
38416c28e16890 Matti Vaittinen 2023-03-31  379  			times[idx++] = new;
38416c28e16890 Matti Vaittinen 2023-03-31  380  			continue;
38416c28e16890 Matti Vaittinen 2023-03-31  381  		}
38416c28e16890 Matti Vaittinen 2023-03-31  382  
38416c28e16890 Matti Vaittinen 2023-03-31  383  		for (j = 0; j <= idx; j++) {
38416c28e16890 Matti Vaittinen 2023-03-31  384  			if (times[j] > new) {
38416c28e16890 Matti Vaittinen 2023-03-31  385  				memmove(&times[j + 1], &times[j],
38416c28e16890 Matti Vaittinen 2023-03-31  386  					(idx - j) * sizeof(int));
38416c28e16890 Matti Vaittinen 2023-03-31  387  				times[j] = new;
38416c28e16890 Matti Vaittinen 2023-03-31  388  				idx++;
38416c28e16890 Matti Vaittinen 2023-03-31  389  			}
38416c28e16890 Matti Vaittinen 2023-03-31  390  		}
38416c28e16890 Matti Vaittinen 2023-03-31  391  	}
e65065132fa6d9 Matti Vaittinen 2023-04-17  392  
e65065132fa6d9 Matti Vaittinen 2023-04-17  393  	/* create a list of times formatted as list of IIO_VAL_INT_PLUS_MICRO */
e65065132fa6d9 Matti Vaittinen 2023-04-17 @394  	int_micro_times = kcalloc(idx, sizeof(int) * 2, GFP_KERNEL);
e65065132fa6d9 Matti Vaittinen 2023-04-17  395  	if (int_micro_times) {
38416c28e16890 Matti Vaittinen 2023-03-31  396  		/*
e65065132fa6d9 Matti Vaittinen 2023-04-17  397  		 * This is just to survive a unlikely corner-case where times in
e65065132fa6d9 Matti Vaittinen 2023-04-17  398  		 * the given time table were not unique. Else we could just
e65065132fa6d9 Matti Vaittinen 2023-04-17  399  		 * trust the gts->num_itime.
38416c28e16890 Matti Vaittinen 2023-03-31  400  		 */
38416c28e16890 Matti Vaittinen 2023-03-31  401  		gts->num_avail_time_tables = idx;
e65065132fa6d9 Matti Vaittinen 2023-04-17  402  		iio_gts_us_to_int_micro(times, int_micro_times, idx);
e65065132fa6d9 Matti Vaittinen 2023-04-17  403  	}
e65065132fa6d9 Matti Vaittinen 2023-04-17  404  
e65065132fa6d9 Matti Vaittinen 2023-04-17  405  	gts->avail_time_tables = int_micro_times;
e65065132fa6d9 Matti Vaittinen 2023-04-17  406  	kfree(times);
e65065132fa6d9 Matti Vaittinen 2023-04-17  407  
e65065132fa6d9 Matti Vaittinen 2023-04-17  408  	if (!int_micro_times)
e65065132fa6d9 Matti Vaittinen 2023-04-17  409  		return -ENOMEM;
38416c28e16890 Matti Vaittinen 2023-03-31  410  
38416c28e16890 Matti Vaittinen 2023-03-31  411  	return 0;
38416c28e16890 Matti Vaittinen 2023-03-31  412  }
38416c28e16890 Matti Vaittinen 2023-03-31  413  

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

             reply	other threads:[~2023-06-06  4:10 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-06-06  4:10 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2023-06-06 13:28 drivers/iio/industrialio-gts-helper.c:394 iio_gts_build_avail_time_table() warn: double check that we're allocating correct size: 4 vs 8 kernel test robot
2023-11-05 21:22 kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202306061239.AIaDBsVg-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=error27@gmail.com \
    --cc=oe-kbuild@lists.linux.dev \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.