All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: Re: [PATCH v4 1/6] iio: Add output buffer support
Date: Sat, 21 Aug 2021 08:16:24 +0800	[thread overview]
Message-ID: <202108210859.P9wuW1dT-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 5964 bytes --]

CC: kbuild-all(a)lists.01.org
In-Reply-To: <20210820165927.4524-2-mihail.chindris@analog.com>
References: <20210820165927.4524-2-mihail.chindris@analog.com>
TO: Mihail Chindris <mihail.chindris@analog.com>
TO: linux-kernel(a)vger.kernel.org
TO: linux-iio(a)vger.kernel.org
CC: lars(a)metafoo.de
CC: Michael.Hennerich(a)analog.com
CC: jic23(a)kernel.org
CC: nuno.sa(a)analog.com
CC: dragos.bogdan(a)analog.com
CC: alexandru.ardelean(a)analog.com
CC: Mihail Chindris <mihail.chindris@analog.com>

Hi Mihail,

I love your patch! Perhaps something to improve:

[auto build test WARNING on 94a853eca720ac9e385e59f27e859b4a01123f58]

url:    https://github.com/0day-ci/linux/commits/Mihail-Chindris/iio-Add-output-buffer-support-and-DAC-example/20210821-010349
base:   94a853eca720ac9e385e59f27e859b4a01123f58
:::::: branch date: 7 hours ago
:::::: commit date: 7 hours ago
config: x86_64-randconfig-m001-20210821 (attached as .config)
compiler: gcc-9 (Debian 9.3.0-22) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <dan.carpenter@oracle.com>

New smatch warnings:
drivers/iio/industrialio-buffer.c:221 iio_buffer_write() error: uninitialized symbol 'ret'.
drivers/iio/industrialio-buffer.c:1266 iio_update_buffers() warn: variable dereferenced before check 'insert_buffer' (see line 1261)

Old smatch warnings:
drivers/iio/industrialio-buffer.c:1549 iio_device_buffer_getfd() warn: potential spectre issue 'iio_dev_opaque->attached_buffers' [r] (local cap)
drivers/iio/industrialio-buffer.c:1551 iio_device_buffer_getfd() warn: possible spectre second half.  'buffer'

vim +/ret +221 drivers/iio/industrialio-buffer.c

b4f124803ed8bf Lars-Peter Clausen 2021-08-20  171  
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  172  static ssize_t iio_buffer_write(struct file *filp, const char __user *buf,
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  173  				size_t n, loff_t *f_ps)
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  174  {
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  175  	struct iio_dev_buffer_pair *ib = filp->private_data;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  176  	struct iio_buffer *rb = ib->buffer;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  177  	struct iio_dev *indio_dev = ib->indio_dev;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  178  	DEFINE_WAIT_FUNC(wait, woken_wake_function);
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  179  	size_t datum_size;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  180  	size_t to_wait;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  181  	int ret;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  182  
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  183  	if (!rb || !rb->access->write)
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  184  		return -EINVAL;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  185  
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  186  	datum_size = rb->bytes_per_datum;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  187  
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  188  	/*
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  189  	 * If datum_size is 0 there will never be anything to read from the
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  190  	 * buffer, so signal end of file now.
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  191  	 */
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  192  	if (!datum_size)
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  193  		return 0;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  194  
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  195  	if (filp->f_flags & O_NONBLOCK)
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  196  		to_wait = 0;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  197  	else
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  198  		to_wait = min_t(size_t, n / datum_size, rb->watermark);
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  199  
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  200  	add_wait_queue(&rb->pollq, &wait);
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  201  	do {
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  202  		if (!indio_dev->info) {
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  203  			ret = -ENODEV;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  204  			break;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  205  		}
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  206  
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  207  		if (iio_buffer_space_available(rb) < to_wait) {
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  208  			if (signal_pending(current)) {
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  209  				ret = -ERESTARTSYS;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  210  				break;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  211  			}
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  212  
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  213  			wait_woken(&wait, TASK_INTERRUPTIBLE,
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  214  				   MAX_SCHEDULE_TIMEOUT);
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  215  			continue;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  216  		}
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  217  
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  218  		ret = rb->access->write(rb, n, buf);
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  219  		if (ret == 0 && (filp->f_flags & O_NONBLOCK))
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  220  			ret = -EAGAIN;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20 @221  	} while (ret == 0);
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  222  	remove_wait_queue(&rb->pollq, &wait);
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  223  
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  224  	return ret;
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  225  }
b4f124803ed8bf Lars-Peter Clausen 2021-08-20  226  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 37881 bytes --]

             reply	other threads:[~2021-08-21  0:16 UTC|newest]

Thread overview: 18+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-21  0:16 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2021-08-22 15:49 [PATCH v4 1/6] iio: Add output buffer support kernel test robot
2021-08-25 15:31 ` kernel test robot
2021-08-25 15:31   ` kernel test robot
2021-08-20 16:59 [PATCH v4 0/6] iio: Add output buffer support and DAC example Mihail Chindris
2021-08-20 16:59 ` [PATCH v4 1/6] iio: Add output buffer support Mihail Chindris
2021-08-21  0:24   ` kernel test robot
2021-08-21  0:24     ` kernel test robot
2021-08-23  2:23   ` kernel test robot
2021-08-23  2:23     ` kernel test robot
2021-08-23 13:50   ` Nuno Sá
2021-08-30 15:42     ` Jonathan Cameron
2021-09-01  8:50       ` Sa, Nuno
2021-09-05  9:54         ` Jonathan Cameron
2021-08-25  8:35   ` Alexandru Ardelean
2021-08-30 16:05   ` Jonathan Cameron
2021-09-01  8:54     ` Sa, Nuno
2021-09-05  9:55       ` Jonathan Cameron
2021-09-16 10:57     ` Chindris, Mihail

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=202108210859.P9wuW1dT-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /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.