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 --]
next 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.