* drivers/media/v4l2-core/v4l2-ioctl.c:3308:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
@ 2021-09-29 6:25 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-09-29 6:25 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 27387 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Arnd Bergmann <arnd@arndb.de>
CC: Mauro Carvalho Chehab <mchehab@kernel.org>
CC: linux-media(a)vger.kernel.org
CC: Hans Verkuil <hverkuil@xs4all.nl>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: a4e6f95a891ac08bd09d62e3e6dae239b150f4c1
commit: 8dbcc3fa387c16abfc88a628cf528c439c91b332 media: v4l2: prepare compat-ioctl rework
date: 11 months ago
:::::: branch date: 7 hours ago
:::::: commit date: 11 months ago
config: arm-randconfig-c002-20210927 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project dc6e8dfdfe7efecfda318d43a06fae18b40eb498)
reproduce (this is a W=1 build):
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# install arm cross compiling tool for clang build
# apt-get install binutils-arm-linux-gnueabi
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=8dbcc3fa387c16abfc88a628cf528c439c91b332
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 8dbcc3fa387c16abfc88a628cf528c439c91b332
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=arm clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
^
include/uapi/asm-generic/ioctl.h:94:23: note: expanded from macro '_IOC_DIR'
#define _IOC_DIR(nr) (((nr) >> _IOC_DIRSHIFT) & _IOC_DIRMASK)
^
drivers/media/v4l2-core/v4l2-ioctl.c:3275:2: note: Taking true branch
if (_IOC_DIR(cmd) != _IOC_NONE) {
^
drivers/media/v4l2-core/v4l2-ioctl.c:3276:7: note: Assuming the condition is true
if (ioc_size <= sizeof(sbuf)) {
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-ioctl.c:3276:3: note: Taking true branch
if (ioc_size <= sizeof(sbuf)) {
^
drivers/media/v4l2-core/v4l2-ioctl.c:3286:9: note: Calling 'video_get_user'
err = video_get_user((void __user *)arg, parg, cmd,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-ioctl.c:3121:6: note: Assuming the condition is false
if (!(_IOC_DIR(cmd) & _IOC_WRITE)) {
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-ioctl.c:3121:2: note: Taking false branch
if (!(_IOC_DIR(cmd) & _IOC_WRITE)) {
^
drivers/media/v4l2-core/v4l2-ioctl.c:3134:2: note: Taking false branch
if (v4l2_is_known_ioctl(real_cmd)) {
^
drivers/media/v4l2-core/v4l2-ioctl.c:3142:6: note: 'cmd' is equal to 'real_cmd'
if (cmd == real_cmd) {
^~~
drivers/media/v4l2-core/v4l2-ioctl.c:3142:2: note: Taking true branch
if (cmd == real_cmd) {
^
drivers/media/v4l2-core/v4l2-ioctl.c:3143:7: note: Calling 'copy_from_user'
if (copy_from_user(parg, (void __user *)arg, n))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:191:2: note: Taking true branch
if (likely(check_copy_size(to, n, false)))
^
include/linux/uaccess.h:192:7: note: Calling '_copy_from_user'
n = _copy_from_user(to, from, n);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:157:6: note: Left side of '&&' is true
if (!should_fail_usercopy() && likely(access_ok(from, n))) {
^
include/linux/uaccess.h:157:33: note: Assuming the condition is false
if (!should_fail_usercopy() && likely(access_ok(from, n))) {
^
include/linux/compiler.h:77:20: note: expanded from macro 'likely'
# define likely(x) __builtin_expect(!!(x), 1)
^~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:157:2: note: Taking false branch
if (!should_fail_usercopy() && likely(access_ok(from, n))) {
^
include/linux/uaccess.h:161:6: note: Assuming 'res' is 0
if (unlikely(res))
^
include/linux/compiler.h:78:40: note: expanded from macro 'unlikely'
# define unlikely(x) __builtin_expect(!!(x), 0)
^~~~
include/linux/uaccess.h:161:2: note: Taking false branch
if (unlikely(res))
^
include/linux/uaccess.h:192:7: note: Returning from '_copy_from_user'
n = _copy_from_user(to, from, n);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-ioctl.c:3143:7: note: Returning from 'copy_from_user'
if (copy_from_user(parg, (void __user *)arg, n))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-ioctl.c:3143:3: note: Taking false branch
if (copy_from_user(parg, (void __user *)arg, n))
^
drivers/media/v4l2-core/v4l2-ioctl.c:3182:7: note: 'err' is 0
if (!err && n < _IOC_SIZE(real_cmd))
^~~
drivers/media/v4l2-core/v4l2-ioctl.c:3182:6: note: Left side of '&&' is true
if (!err && n < _IOC_SIZE(real_cmd))
^
drivers/media/v4l2-core/v4l2-ioctl.c:3182:2: note: Taking false branch
if (!err && n < _IOC_SIZE(real_cmd))
^
drivers/media/v4l2-core/v4l2-ioctl.c:3184:2: note: Returning zero (loaded from 'err'), which participates in a condition later
return err;
^~~~~~~~~~
drivers/media/v4l2-core/v4l2-ioctl.c:3286:9: note: Returning from 'video_get_user'
err = video_get_user((void __user *)arg, parg, cmd,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-ioctl.c:3288:7: note: 'err' is 0
if (err)
^~~
drivers/media/v4l2-core/v4l2-ioctl.c:3288:3: note: Taking false branch
if (err)
^
drivers/media/v4l2-core/v4l2-ioctl.c:3292:8: note: Calling 'check_array_args'
err = check_array_args(cmd, parg, &array_size, &user_ptr, &kernel_ptr);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/v4l2-core/v4l2-ioctl.c:3032:2: note: Control jumps to 'case 3222820425:' @line 3071
switch (cmd) {
^
drivers/media/v4l2-core/v4l2-ioctl.c:3074:20: note: The left operand of '!=' is a garbage value
if (ctrls->count != 0) {
~~~~~~~~~~~~ ^
>> drivers/media/v4l2-core/v4l2-ioctl.c:3308:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = -EFAULT;
^ ~~~~~~~
drivers/media/v4l2-core/v4l2-ioctl.c:3308:3: note: Value stored to 'err' is never read
err = -EFAULT;
^ ~~~~~~~
Suppressed 18 warnings (18 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
17 warnings generated.
Suppressed 17 warnings (17 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
3 warnings generated.
Suppressed 3 warnings (3 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
19 warnings generated.
Suppressed 19 warnings (19 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
fs/configfs/file.c:149:10: warning: Value stored to 'len' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
ssize_t len = min_t(size_t, count, PAGE_SIZE);
^~~
fs/configfs/file.c:149:10: note: Value stored to 'len' during its initialization is never read
ssize_t len = min_t(size_t, count, PAGE_SIZE);
^~~
Suppressed 3 warnings (3 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
18 warnings generated.
Suppressed 18 warnings (18 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
fs/configfs/symlink.c:72:3: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy(s,"../");
^~~~~~
fs/configfs/symlink.c:72:3: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy(s,"../");
^~~~~~
Suppressed 3 warnings (3 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
19 warnings generated.
Suppressed 19 warnings (19 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
19 warnings generated.
Suppressed 19 warnings (19 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
19 warnings generated.
Suppressed 19 warnings (19 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
19 warnings generated.
Suppressed 19 warnings (19 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
19 warnings generated.
Suppressed 19 warnings (19 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
19 warnings generated.
Suppressed 19 warnings (19 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
17 warnings generated.
Suppressed 17 warnings (17 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
3 warnings generated.
Suppressed 3 warnings (3 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
17 warnings generated.
Suppressed 17 warnings (17 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
3 warnings generated.
Suppressed 3 warnings (3 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
drivers/i2c/i2c-core-smbus.c:101:2: warning: Undefined or garbage value returned to caller [clang-analyzer-core.uninitialized.UndefReturn]
return (status < 0) ? status : data.byte;
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/i2c/i2c-core-smbus.c:98:11: note: Calling 'i2c_smbus_xfer'
status = i2c_smbus_xfer(client->adapter, client->addr, client->flags,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/i2c/i2c-core-smbus.c:539:6: note: Assuming 'res' is not equal to 0
if (res)
^~~
drivers/i2c/i2c-core-smbus.c:539:2: note: Taking true branch
if (res)
^
drivers/i2c/i2c-core-smbus.c:540:3: note: Returning without writing to 'data->byte'
return res;
^
drivers/i2c/i2c-core-smbus.c:98:11: note: Returning from 'i2c_smbus_xfer'
status = i2c_smbus_xfer(client->adapter, client->addr, client->flags,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/i2c/i2c-core-smbus.c:101:10: note: Assuming 'status' is >= 0
return (status < 0) ? status : data.byte;
^~~~~~~~~~
drivers/i2c/i2c-core-smbus.c:101:9: note: '?' condition is false
return (status < 0) ? status : data.byte;
^
drivers/i2c/i2c-core-smbus.c:101:2: note: Undefined or garbage value returned to caller
return (status < 0) ? status : data.byte;
vim +/err +3308 drivers/media/v4l2-core/v4l2-ioctl.c
c8ef1a6076bfb98 drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2019-12-16 3257
fc0a80798576f80 drivers/media/video/v4l2-ioctl.c Laurent Pinchart 2010-07-12 3258 long
c8ef1a6076bfb98 drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2019-12-16 3259 video_usercopy(struct file *file, unsigned int orig_cmd, unsigned long arg,
fc0a80798576f80 drivers/media/video/v4l2-ioctl.c Laurent Pinchart 2010-07-12 3260 v4l2_kioctl func)
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3261 {
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3262 char sbuf[128];
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3263 void *mbuf = NULL;
1d94aa369da073a drivers/media/video/v4l2-ioctl.c Hans Verkuil 2010-04-06 3264 void *parg = (void *)arg;
069b747931f13ed drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-12-30 3265 long err = -EINVAL;
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3266 bool has_array_args;
043f77edae8bd50 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2017-05-10 3267 bool always_copy = false;
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3268 size_t array_size = 0;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3269 void __user *user_ptr = NULL;
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3270 void **kernel_ptr = NULL;
c8ef1a6076bfb98 drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2019-12-16 3271 unsigned int cmd = video_translate_cmd(orig_cmd);
f8a695c4b43d02c drivers/media/v4l2-core/v4l2-ioctl.c Mauro Carvalho Chehab 2018-03-26 3272 const size_t ioc_size = _IOC_SIZE(cmd);
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3273
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3274 /* Copy arguments into temp kernel buffer */
337f9d205972bfe drivers/media/video/v4l2-ioctl.c Trent Piepho 2009-03-04 3275 if (_IOC_DIR(cmd) != _IOC_NONE) {
f8a695c4b43d02c drivers/media/v4l2-core/v4l2-ioctl.c Mauro Carvalho Chehab 2018-03-26 3276 if (ioc_size <= sizeof(sbuf)) {
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3277 parg = sbuf;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3278 } else {
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3279 /* too big to allocate from stack */
f8a695c4b43d02c drivers/media/v4l2-core/v4l2-ioctl.c Mauro Carvalho Chehab 2018-03-26 3280 mbuf = kvmalloc(ioc_size, GFP_KERNEL);
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3281 if (NULL == mbuf)
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3282 return -ENOMEM;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3283 parg = mbuf;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3284 }
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3285
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3286 err = video_get_user((void __user *)arg, parg, cmd,
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3287 orig_cmd, &always_copy);
c8ef1a6076bfb98 drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2019-12-16 3288 if (err)
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3289 goto out;
1dc8b65c944e5cf drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-01-08 3290 }
19c96e4b7d3c800 drivers/media/video/v4l2-ioctl.c Trent Piepho 2009-03-04 3291
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3292 err = check_array_args(cmd, parg, &array_size, &user_ptr, &kernel_ptr);
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3293 if (err < 0)
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3294 goto out;
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3295 has_array_args = err;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3296
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3297 if (has_array_args) {
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3298 /*
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3299 * When adding new types of array args, make sure that the
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3300 * parent argument to ioctl (which contains the pointer to the
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3301 * array) fits into sbuf (so that mbuf will still remain
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3302 * unused up to here).
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3303 */
758d90e161382c1 drivers/media/v4l2-core/v4l2-ioctl.c Tomasz Figa 2017-06-19 3304 mbuf = kvmalloc(array_size, GFP_KERNEL);
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3305 err = -ENOMEM;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3306 if (NULL == mbuf)
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3307 goto out_array_args;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 @3308 err = -EFAULT;
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3309 if (in_compat_syscall())
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3310 err = v4l2_compat_get_array_args(file, mbuf, user_ptr,
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3311 array_size, orig_cmd,
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3312 parg);
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3313 else
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3314 err = copy_from_user(mbuf, user_ptr, array_size) ?
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3315 -EFAULT : 0;
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3316 if (err)
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3317 goto out_array_args;
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3318 *kernel_ptr = mbuf;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3319 }
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3320
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3321 /* Handles IOCTL */
fc0a80798576f80 drivers/media/video/v4l2-ioctl.c Laurent Pinchart 2010-07-12 3322 err = func(file, cmd, parg);
181a4a2d5a0a7b4 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2018-01-30 3323 if (err == -ENOTTY || err == -ENOIOCTLCMD) {
02bbb814d8db7b6 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2012-02-08 3324 err = -ENOTTY;
181a4a2d5a0a7b4 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2018-01-30 3325 goto out;
181a4a2d5a0a7b4 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2018-01-30 3326 }
181a4a2d5a0a7b4 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2018-01-30 3327
aa32f4c0bcce7da drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2013-12-16 3328 if (err == 0) {
aa32f4c0bcce7da drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2013-12-16 3329 if (cmd == VIDIOC_DQBUF)
aa32f4c0bcce7da drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2013-12-16 3330 trace_v4l2_dqbuf(video_devdata(file)->minor, parg);
aa32f4c0bcce7da drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2013-12-16 3331 else if (cmd == VIDIOC_QBUF)
aa32f4c0bcce7da drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2013-12-16 3332 trace_v4l2_qbuf(video_devdata(file)->minor, parg);
aa32f4c0bcce7da drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2013-12-16 3333 }
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3334
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3335 if (has_array_args) {
ba2d35c14b6fc55 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2014-03-17 3336 *kernel_ptr = (void __force *)user_ptr;
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3337 if (in_compat_syscall()) {
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3338 int put_err;
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3339
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3340 put_err = v4l2_compat_put_array_args(file, user_ptr, mbuf,
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3341 array_size, orig_cmd,
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3342 parg);
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3343 if (put_err)
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3344 err = put_err;
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3345 } else if (copy_to_user(user_ptr, mbuf, array_size)) {
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3346 err = -EFAULT;
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3347 }
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3348 goto out_array_args;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3349 }
043f77edae8bd50 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2017-05-10 3350 /*
043f77edae8bd50 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2017-05-10 3351 * Some ioctls can return an error, but still have valid
043f77edae8bd50 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2017-05-10 3352 * results that must be returned.
043f77edae8bd50 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2017-05-10 3353 */
043f77edae8bd50 drivers/media/v4l2-core/v4l2-ioctl.c Hans Verkuil 2017-05-10 3354 if (err < 0 && !always_copy)
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3355 goto out;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3356
d14e6d76ebf740f drivers/media/video/v4l2-ioctl.c Pawel Osciak 2010-12-23 3357 out_array_args:
8dbcc3fa387c16a drivers/media/v4l2-core/v4l2-ioctl.c Arnd Bergmann 2020-10-30 3358 if (video_put_user((void __user *)arg, parg, cmd, orig_cmd))
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3359 err = -EFAULT;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3360 out:
758d90e161382c1 drivers/media/v4l2-core/v4l2-ioctl.c Tomasz Figa 2017-06-19 3361 kvfree(mbuf);
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3362 return err;
35ea11ff84719b1 drivers/media/video/v4l2-ioctl.c Hans Verkuil 2008-07-20 3363 }
fc0a80798576f80 drivers/media/video/v4l2-ioctl.c Laurent Pinchart 2010-07-12 3364
:::::: The code@line 3308 was first introduced by commit
:::::: 35ea11ff84719b1bfab2909903a9640a86552fd1 V4L/DVB (8430): videodev: move some functions from v4l2-dev.h to v4l2-common.h or v4l2-ioctl.h
:::::: TO: Hans Verkuil <hverkuil@xs4all.nl>
:::::: CC: Mauro Carvalho Chehab <mchehab@infradead.org>
---
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: 24552 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-09-29 6:25 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-29 6:25 drivers/media/v4l2-core/v4l2-ioctl.c:3308:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores] kernel test robot
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.