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: Re: [PATCH v5 2/5] iio: consumers: copy/release available info from producer to fix race
Date: Fri, 25 Oct 2024 06:59:42 +0800	[thread overview]
Message-ID: <202410250631.Sci650fF-lkp@intel.com> (raw)

BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
In-Reply-To: <20241021-iio-read-avail-release-v5-2-b168713fab33@gmail.com>
References: <20241021-iio-read-avail-release-v5-2-b168713fab33@gmail.com>
TO: Matteo Martelli <matteomartelli3@gmail.com>
TO: Jonathan Cameron <jic23@kernel.org>
TO: "Lars-Peter Clausen" <lars@metafoo.de>
TO: Michael Hennerich <Michael.Hennerich@analog.com>
TO: "Alisa-Dariana Roman" <alisa.roman@analog.com>
TO: Christian Eggers <ceggers@arri.de>
TO: Peter Rosin <peda@axentia.se>
TO: Paul Cercueil <paul@crapouillou.net>
TO: Sebastian Reichel <sre@kernel.org>
CC: linux-iio@vger.kernel.org
CC: linux-kernel@vger.kernel.org
CC: linux-mips@vger.kernel.org
CC: linux-pm@vger.kernel.org
CC: Matteo Martelli <matteomartelli3@gmail.com>

Hi Matteo,

kernel test robot noticed the following build warnings:

[auto build test WARNING on c3e9df514041ec6c46be83801b1891392f4522f7]

url:    https://github.com/intel-lab-lkp/linux/commits/Matteo-Martelli/iio-core-add-read_avail_release_resource-callback-to-fix-race/20241021-205851
base:   c3e9df514041ec6c46be83801b1891392f4522f7
patch link:    https://lore.kernel.org/r/20241021-iio-read-avail-release-v5-2-b168713fab33%40gmail.com
patch subject: [PATCH v5 2/5] iio: consumers: copy/release available info from producer to fix race
:::::: branch date: 3 days ago
:::::: commit date: 3 days ago
config: i386-randconfig-141-20241025 (https://download.01.org/0day-ci/archive/20241025/202410250631.Sci650fF-lkp@intel.com/config)
compiler: clang version 19.1.2 (https://github.com/llvm/llvm-project 7ba7d8e2f7b6445b60679da826210cdde29eaf8b)

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@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202410250631.Sci650fF-lkp@intel.com/

smatch warnings:
drivers/iio/inkern.c:878 iio_channel_read_max() error: uninitialized symbol 'avail_type'.
drivers/iio/inkern.c:935 iio_channel_read_min() error: uninitialized symbol 'avail_type'.

vim +/avail_type +878 drivers/iio/inkern.c

00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  864  
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  865  static int iio_channel_read_max(struct iio_channel *chan,
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  866  				int *val, int *val2, int *type,
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  867  				enum iio_chan_info_enum info)
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  868  {
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  869  	int length;
b87e6c24d989cc drivers/iio/inkern.c         Matteo Martelli  2024-10-21  870  	int avail_type;
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  871  
b87e6c24d989cc drivers/iio/inkern.c         Matteo Martelli  2024-10-21  872  	const int *vals __free(kfree) =
b87e6c24d989cc drivers/iio/inkern.c         Matteo Martelli  2024-10-21  873  		iio_channel_read_avail_retvals(chan, type, &length,
b87e6c24d989cc drivers/iio/inkern.c         Matteo Martelli  2024-10-21  874  					       &avail_type, info);
b87e6c24d989cc drivers/iio/inkern.c         Matteo Martelli  2024-10-21  875  	if (IS_ERR(vals))
b87e6c24d989cc drivers/iio/inkern.c         Matteo Martelli  2024-10-21  876  		return PTR_ERR(vals);
f75c544d741332 drivers/iio/inkern.c         Herve Codina     2023-06-23  877  
b87e6c24d989cc drivers/iio/inkern.c         Matteo Martelli  2024-10-21 @878  	switch (avail_type) {
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  879  	case IIO_AVAIL_RANGE:
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  880  		switch (*type) {
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  881  		case IIO_VAL_INT:
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  882  			*val = vals[2];
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  883  			break;
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  884  		default:
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  885  			*val = vals[4];
ad4e8480a1db87 drivers/iio/inkern.c         Herve Codina     2023-06-23  886  			if (val2)
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  887  				*val2 = vals[5];
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  888  		}
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  889  		return 0;
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  890  
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  891  	case IIO_AVAIL_LIST:
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  892  		if (length <= 0)
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  893  			return -EINVAL;
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  894  		switch (*type) {
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  895  		case IIO_VAL_INT:
97aee7157eeada drivers/iio/inkern.c         Herve Codina     2023-06-23  896  			*val = max_array(vals, length);
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  897  			break;
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  898  		default:
4dc603735826ec drivers/iio/inkern.c         Herve Codina     2023-06-23  899  			/* TODO: learn about max for other iio values */
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  900  			return -EINVAL;
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  901  		}
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  902  		return 0;
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  903  
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  904  	default:
f75c544d741332 drivers/iio/inkern.c         Herve Codina     2023-06-23  905  		return -EINVAL;
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  906  	}
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  907  }
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  908  
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  909  int iio_read_max_channel_raw(struct iio_channel *chan, int *val)
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  910  {
b804e2b76ac6d5 drivers/iio/inkern.c         Jonathan Cameron 2021-04-26  911  	struct iio_dev_opaque *iio_dev_opaque = to_iio_dev_opaque(chan->indio_dev);
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  912  	int type;
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  913  
3092bde731ca8c drivers/iio/inkern.c         Nuno Sa          2024-02-29  914  	guard(mutex)(&iio_dev_opaque->info_exist_lock);
3092bde731ca8c drivers/iio/inkern.c         Nuno Sa          2024-02-29  915  	if (!chan->indio_dev->info)
3092bde731ca8c drivers/iio/inkern.c         Nuno Sa          2024-02-29  916  		return -ENODEV;
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  917  
3092bde731ca8c drivers/iio/inkern.c         Nuno Sa          2024-02-29  918  	return iio_channel_read_max(chan, val, NULL, &type, IIO_CHAN_INFO_RAW);
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  919  }
00c5f80c2fad53 drivers/iio/inkern.c         Peter Rosin      2016-11-08  920  EXPORT_SYMBOL_GPL(iio_read_max_channel_raw);
e27d75d71c0dbb drivers/staging/iio/inkern.c Jonathan Cameron 2012-02-15  921  
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  922  static int iio_channel_read_min(struct iio_channel *chan,
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  923  				int *val, int *val2, int *type,
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  924  				enum iio_chan_info_enum info)
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  925  {
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  926  	int length;
b87e6c24d989cc drivers/iio/inkern.c         Matteo Martelli  2024-10-21  927  	int avail_type;
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  928  
b87e6c24d989cc drivers/iio/inkern.c         Matteo Martelli  2024-10-21  929  	const int *vals __free(kfree) =
b87e6c24d989cc drivers/iio/inkern.c         Matteo Martelli  2024-10-21  930  		iio_channel_read_avail_retvals(chan, type, &length,
b87e6c24d989cc drivers/iio/inkern.c         Matteo Martelli  2024-10-21  931  					       &avail_type, info);
b87e6c24d989cc drivers/iio/inkern.c         Matteo Martelli  2024-10-21  932  	if (IS_ERR(vals))
b87e6c24d989cc drivers/iio/inkern.c         Matteo Martelli  2024-10-21  933  		return PTR_ERR(vals);
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  934  
b87e6c24d989cc drivers/iio/inkern.c         Matteo Martelli  2024-10-21 @935  	switch (avail_type) {
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  936  	case IIO_AVAIL_RANGE:
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  937  		switch (*type) {
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  938  		case IIO_VAL_INT:
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  939  			*val = vals[0];
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  940  			break;
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  941  		default:
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  942  			*val = vals[0];
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  943  			if (val2)
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  944  				*val2 = vals[1];
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  945  		}
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  946  		return 0;
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  947  
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  948  	case IIO_AVAIL_LIST:
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  949  		if (length <= 0)
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  950  			return -EINVAL;
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  951  		switch (*type) {
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  952  		case IIO_VAL_INT:
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  953  			*val = min_array(vals, length);
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  954  			break;
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  955  		default:
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  956  			/* TODO: learn about min for other iio values */
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  957  			return -EINVAL;
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  958  		}
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  959  		return 0;
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  960  
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  961  	default:
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  962  		return -EINVAL;
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  963  	}
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  964  }
7560418078b939 drivers/iio/inkern.c         Herve Codina     2023-06-23  965  

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

             reply	other threads:[~2024-10-24 23:00 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2024-10-24 22:59 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2024-10-21 12:54 [PATCH v5 0/5] iio: fix possible race condition during access of available info lists Matteo Martelli
2024-10-21 12:54 ` [PATCH v5 2/5] iio: consumers: copy/release available info from producer to fix race Matteo Martelli
2024-10-30 14:47   ` Andy Shevchenko
2024-10-30 17:35     ` Jonathan Cameron
2024-10-30 18:23     ` Matteo Martelli
2024-10-30 20:30       ` Jonathan Cameron
2024-10-31 11:26         ` Matteo Martelli
2024-10-31 14:31           ` Jonathan Cameron
2024-10-31 18:06             ` Matteo Martelli
2024-11-15 14:25               ` Matteo Martelli
2024-11-18 10:21                 ` Andy Shevchenko
2024-11-18 14:45                   ` Matteo Martelli
2024-11-18 16:05                     ` Andy Shevchenko
2024-11-19 11:25                       ` Matteo Martelli
2024-11-19 12:05                         ` Andy Shevchenko
2024-11-23 14:13                           ` Jonathan Cameron
2024-11-25 10:05                             ` Andy Shevchenko
2024-11-26 16:31                             ` Matteo Martelli
2024-11-26 17:41                               ` Jonathan Cameron
2024-11-29 16:04                                 ` Matteo Martelli
2024-12-02 17:42                                   ` Andy Shevchenko
2024-12-12  9:46                                     ` Matteo Martelli
2024-12-12 14:06                                       ` Andy Shevchenko
2024-12-15 13:46                                         ` Jonathan Cameron
2024-12-23 15:28                                           ` Matteo Martelli
2025-01-05 11:22                                             ` Jonathan Cameron

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=202410250631.Sci650fF-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.