From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: drivers/rpmsg/rpmsg_ctrl.c:88:13: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
Date: Mon, 09 May 2022 07:23:53 +0800 [thread overview]
Message-ID: <202205090701.WkKGSFMz-lkp@intel.com> (raw)
[-- Attachment #1: Type: text/plain, Size: 26209 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Arnaud Pouliquen <arnaud.pouliquen@foss.st.com>
CC: Bjorn Andersson <bjorn.andersson@linaro.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: c5eb0a61238dd6faf37f58c9ce61c9980aaffd7a
commit: 617d32938d1be0d67bad73a914635bf787c319c1 rpmsg: Move the rpmsg control device from rpmsg_char to rpmsg_ctrl
date: 8 weeks ago
:::::: branch date: 2 hours ago
:::::: commit date: 8 weeks ago
config: mips-randconfig-c004-20220508 (https://download.01.org/0day-ci/archive/20220509/202205090701.WkKGSFMz-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project af4cf1c6b8ed0d8102fc5e69acdc2fcbbcdaa9a7)
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 mips cross compiling tool for clang build
# apt-get install binutils-mips-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=617d32938d1be0d67bad73a914635bf787c319c1
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 617d32938d1be0d67bad73a914635bf787c319c1
# save the config file
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips 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 >>)
arch/mips/include/asm/bitops.h:413:2: note: Taking false branch
if (!(x & 0xf0000000u)) {
^
arch/mips/include/asm/bitops.h:417:6: note: Assuming the condition is false
if (!(x & 0xc0000000u)) {
^~~~~~~~~~~~~~~~~~
arch/mips/include/asm/bitops.h:417:2: note: Taking false branch
if (!(x & 0xc0000000u)) {
^
arch/mips/include/asm/bitops.h:421:6: note: Assuming the condition is false
if (!(x & 0x80000000u)) {
^~~~~~~~~~~~~~~~~~
arch/mips/include/asm/bitops.h:421:2: note: Taking false branch
if (!(x & 0x80000000u)) {
^
arch/mips/include/asm/bitops.h:425:2: note: Returning the value 32 (loaded from 'r')
return r;
^~~~~~~~
include/linux/bitops.h:155:10: note: Returning from 'fls'
return fls(l);
^~~~~~
include/linux/bitops.h:155:3: note: Returning the value 32
return fls(l);
^~~~~~~~~~~~~
include/linux/log2.h:57:16: note: Returning from 'fls_long'
return 1UL << fls_long(n - 1);
^~~~~~~~~~~~~~~
include/linux/log2.h:57:13: note: The result of the left shift is undefined due to shifting by '32', which is greater or equal to the width of type 'unsigned long'
return 1UL << fls_long(n - 1);
^ ~~~~~~~~~~~~~~~
Suppressed 1 warnings (1 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.
fs/stat.c:227:20: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
stat->result_mask |= STATX_MNT_ID;
^
fs/stat.c:534:1: note: Calling '__do_sys_lstat64'
SYSCALL_DEFINE2(lstat64, const char __user *, filename,
^
include/linux/syscalls.h:218:36: note: expanded from macro 'SYSCALL_DEFINE2'
#define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/syscalls.h:228:2: note: expanded from macro 'SYSCALL_DEFINEx'
__SYSCALL_DEFINEx(x, sname, __VA_ARGS__)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/syscalls.h:249:14: note: expanded from macro '__SYSCALL_DEFINEx'
long ret = __do_sys##name(__MAP(x,__SC_CAST,__VA_ARGS__));\
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
note: expanded from here
fs/stat.c:538:14: note: Calling 'vfs_lstat'
int error = vfs_lstat(filename, &stat);
^~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/fs.h:3287:9: note: Calling 'vfs_fstatat'
return vfs_fstatat(AT_FDCWD, name, stat, AT_SYMLINK_NOFOLLOW);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/stat.c:243:9: note: Calling 'vfs_statx'
return vfs_statx(dfd, filename, flags | AT_NO_AUTOMOUNT,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/stat.c:209:2: note: Taking false branch
if (flags & ~(AT_SYMLINK_NOFOLLOW | AT_NO_AUTOMOUNT | AT_EMPTY_PATH |
^
fs/stat.c:213:2: note: Taking false branch
if (!(flags & AT_SYMLINK_NOFOLLOW))
^
fs/stat.c:215:2: note: Taking false branch
if (!(flags & AT_NO_AUTOMOUNT))
^
fs/stat.c:217:2: note: Taking false branch
if (flags & AT_EMPTY_PATH)
^
fs/stat.c:222:6: note: Assuming 'error' is 0
if (error)
^~~~~
fs/stat.c:222:2: note: Taking false branch
if (error)
^
fs/stat.c:225:10: note: Calling 'vfs_getattr'
error = vfs_getattr(&path, stat, request_mask, flags);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/stat.c:158:6: note: Assuming 'retval' is not equal to 0
if (retval)
^~~~~~
fs/stat.c:158:2: note: Taking true branch
if (retval)
^
fs/stat.c:159:3: note: Returning without writing to 'stat->result_mask'
return retval;
^
fs/stat.c:225:10: note: Returning from 'vfs_getattr'
error = vfs_getattr(&path, stat, request_mask, flags);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
fs/stat.c:227:20: note: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage
stat->result_mask |= STATX_MNT_ID;
~~~~~~~~~~~~~~~~~ ^
Suppressed 1 warnings (1 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.
1 warning generated.
Suppressed 1 warnings (1 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.
>> drivers/rpmsg/rpmsg_ctrl.c:88:13: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
chinfo.src = eptinfo.src;
^ ~~~~~~~~~~~
drivers/rpmsg/rpmsg_ctrl.c:80:13: note: Left side of '&&' is true
if (cmd != RPMSG_CREATE_EPT_IOCTL)
^
include/uapi/linux/rpmsg.h:29:32: note: expanded from macro 'RPMSG_CREATE_EPT_IOCTL'
#define RPMSG_CREATE_EPT_IOCTL _IOW(0xb5, 0x1, struct rpmsg_endpoint_info)
^
include/uapi/asm-generic/ioctl.h:87:57: note: expanded from macro '_IOW'
#define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
^
include/asm-generic/ioctl.h:13:4: note: expanded from macro '_IOC_TYPECHECK'
((sizeof(t) == sizeof(t[1]) && \
^
drivers/rpmsg/rpmsg_ctrl.c:80:13: note: '?' condition is true
if (cmd != RPMSG_CREATE_EPT_IOCTL)
^
include/uapi/linux/rpmsg.h:29:32: note: expanded from macro 'RPMSG_CREATE_EPT_IOCTL'
#define RPMSG_CREATE_EPT_IOCTL _IOW(0xb5, 0x1, struct rpmsg_endpoint_info)
^
include/uapi/asm-generic/ioctl.h:87:57: note: expanded from macro '_IOW'
#define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
^
include/asm-generic/ioctl.h:13:3: note: expanded from macro '_IOC_TYPECHECK'
((sizeof(t) == sizeof(t[1]) && \
^
drivers/rpmsg/rpmsg_ctrl.c:80:6: note: Assuming the condition is false
if (cmd != RPMSG_CREATE_EPT_IOCTL)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/rpmsg/rpmsg_ctrl.c:80:2: note: Taking false branch
if (cmd != RPMSG_CREATE_EPT_IOCTL)
^
drivers/rpmsg/rpmsg_ctrl.c:83:6: note: Calling 'copy_from_user'
if (copy_from_user(&eptinfo, argp, sizeof(eptinfo)))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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:2: note: Taking true branch
if (!should_fail_usercopy() && likely(access_ok(from, n))) {
^
include/linux/uaccess.h:159:9: note: Calling 'raw_copy_from_user'
res = raw_copy_from_user(to, from, n);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/mips/include/asm/uaccess.h:455:2: note: Returning without writing to 'to->src'
return __cu_len_r;
^
include/linux/uaccess.h:159:9: note: Returning from 'raw_copy_from_user'
res = raw_copy_from_user(to, from, n);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:161:6: note: Assuming 'res' is 0
if (unlikely(res))
^
include/linux/compiler.h:48:24: note: expanded from macro 'unlikely'
# define unlikely(x) (__branch_check__(x, 0, __builtin_constant_p(x)))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
______r = __builtin_expect(!!(x), expect); \
^~~~
include/linux/uaccess.h:161:2: note: Taking false branch
if (unlikely(res))
^
include/linux/uaccess.h:163:2: note: Returning without writing to 'to->src'
return res;
^
include/linux/uaccess.h:192:7: note: Returning from '_copy_from_user'
n = _copy_from_user(to, from, n);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:193:2: note: Returning without writing to 'to->src'
return n;
^
drivers/rpmsg/rpmsg_ctrl.c:83:6: note: Returning from 'copy_from_user'
if (copy_from_user(&eptinfo, argp, sizeof(eptinfo)))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/rpmsg/rpmsg_ctrl.c:83:2: note: Taking false branch
if (copy_from_user(&eptinfo, argp, sizeof(eptinfo)))
^
drivers/rpmsg/rpmsg_ctrl.c:88:13: note: Assigned value is garbage or undefined
chinfo.src = eptinfo.src;
^ ~~~~~~~~~~~
Suppressed 1 warnings (1 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.
drivers/extcon/extcon-ptn5150.c:173:2: warning: Value stored to 'vendor_id' is never read [clang-analyzer-deadcode.DeadStores]
vendor_id = FIELD_GET(PTN5150_REG_DEVICE_ID_VENDOR, reg_data);
^
drivers/extcon/extcon-ptn5150.c:173:2: note: Value stored to 'vendor_id' is never read
drivers/extcon/extcon-ptn5150.c:174:2: warning: Value stored to 'version_id' is never read [clang-analyzer-deadcode.DeadStores]
version_id = FIELD_GET(PTN5150_REG_DEVICE_ID_VERSION, reg_data);
^
drivers/extcon/extcon-ptn5150.c:174:2: note: Value stored to 'version_id' is never read
Suppressed 1 warnings (1 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.
1 warning generated.
--
^~~~~~~~~
drivers/crypto/atmel-sha.c:411:2: note: Taking true branch
if (!tctx->dd) {
^
drivers/crypto/atmel-sha.c:412:3: note: Loop condition is false. Execution continues on line 416
list_for_each_entry(tmp, &atmel_sha.dev_list, list) {
^
include/linux/list.h:638:2: note: expanded from macro 'list_for_each_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
drivers/crypto/atmel-sha.c:416:3: note: Null pointer value stored to field 'dd'
tctx->dd = dd;
^~~~~~~~~~~~~
drivers/crypto/atmel-sha.c:431:29: note: Returning from 'atmel_sha_find_dev'
struct atmel_sha_dev *dd = atmel_sha_find_dev(tctx);
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/atmel-sha.c:437:2: note: Taking false branch
dev_dbg(dd->dev, "init: digest size: %u\n",
^
include/linux/dev_printk.h:162:2: note: expanded from macro 'dev_dbg'
if (0) \
^
drivers/crypto/atmel-sha.c:440:2: note: Control jumps to 'case 64:' at line 457
switch (crypto_ahash_digestsize(tfm)) {
^
drivers/crypto/atmel-sha.c:460:3: note: Execution continues on line 465
break;
^
drivers/crypto/atmel-sha.c:1938:8: note: Returning from 'atmel_sha_init'
err = atmel_sha_init(req);
^~~~~~~~~~~~~~~~~~~
drivers/crypto/atmel-sha.c:1939:6: note: 'err' is 0
if (err)
^~~
drivers/crypto/atmel-sha.c:1939:2: note: Taking false branch
if (err)
^
drivers/crypto/atmel-sha.c:1942:9: note: Calling 'atmel_sha_enqueue'
return atmel_sha_enqueue(req, SHA_OP_DIGEST);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/atmel-sha.c:1153:31: note: Calling 'crypto_tfm_ctx'
struct atmel_sha_ctx *tctx = crypto_tfm_ctx(req->base.tfm);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/atmel-sha.c:1153:31: note: Returning from 'crypto_tfm_ctx'
struct atmel_sha_ctx *tctx = crypto_tfm_ctx(req->base.tfm);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/atmel-sha.c:1154:2: note: 'dd' initialized to a null pointer value
struct atmel_sha_dev *dd = tctx->dd;
^~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/atmel-sha.c:1158:32: note: Passing null pointer value via 1st parameter 'dd'
return atmel_sha_handle_queue(dd, req);
^~
drivers/crypto/atmel-sha.c:1158:9: note: Calling 'atmel_sha_handle_queue'
return atmel_sha_handle_queue(dd, req);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/crypto/atmel-sha.c:1063:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&dd->lock, flags);
^
include/linux/spinlock.h:379:2: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
^
include/linux/spinlock.h:240:2: note: expanded from macro 'raw_spin_lock_irqsave'
do { \
^
drivers/crypto/atmel-sha.c:1063:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&dd->lock, flags);
^
include/linux/spinlock.h:377:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
drivers/crypto/atmel-sha.c:1064:6: note: 'req' is non-null
if (req)
^~~
drivers/crypto/atmel-sha.c:1064:2: note: Taking true branch
if (req)
^
drivers/crypto/atmel-sha.c:1067:23: note: Access to field 'flags' results in a dereference of a null pointer (loaded from variable 'dd')
if (SHA_FLAGS_BUSY & dd->flags) {
^~
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.
1 warning generated.
Suppressed 1 warnings (1 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.
1 warning generated.
Suppressed 1 warnings (1 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.
1 warning generated.
Suppressed 1 warnings (1 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.
1 warning generated.
Suppressed 1 warnings (1 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.
1 warning generated.
Suppressed 1 warnings (1 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.
1 warning generated.
Suppressed 1 warnings (1 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.
>> drivers/rpmsg/rpmsg_ctrl.c:88:13: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
chinfo.src = eptinfo.src;
^ ~~~~~~~~~~~
drivers/rpmsg/rpmsg_ctrl.c:80:13: note: Left side of '&&' is true
if (cmd != RPMSG_CREATE_EPT_IOCTL)
^
include/uapi/linux/rpmsg.h:29:32: note: expanded from macro 'RPMSG_CREATE_EPT_IOCTL'
#define RPMSG_CREATE_EPT_IOCTL _IOW(0xb5, 0x1, struct rpmsg_endpoint_info)
^
include/uapi/asm-generic/ioctl.h:87:57: note: expanded from macro '_IOW'
#define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
^
include/asm-generic/ioctl.h:13:4: note: expanded from macro '_IOC_TYPECHECK'
((sizeof(t) == sizeof(t[1]) && \
^
drivers/rpmsg/rpmsg_ctrl.c:80:13: note: '?' condition is true
if (cmd != RPMSG_CREATE_EPT_IOCTL)
^
include/uapi/linux/rpmsg.h:29:32: note: expanded from macro 'RPMSG_CREATE_EPT_IOCTL'
#define RPMSG_CREATE_EPT_IOCTL _IOW(0xb5, 0x1, struct rpmsg_endpoint_info)
^
include/uapi/asm-generic/ioctl.h:87:57: note: expanded from macro '_IOW'
#define _IOW(type,nr,size) _IOC(_IOC_WRITE,(type),(nr),(_IOC_TYPECHECK(size)))
^
include/asm-generic/ioctl.h:13:3: note: expanded from macro '_IOC_TYPECHECK'
((sizeof(t) == sizeof(t[1]) && \
^
drivers/rpmsg/rpmsg_ctrl.c:80:6: note: Assuming the condition is false
if (cmd != RPMSG_CREATE_EPT_IOCTL)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/rpmsg/rpmsg_ctrl.c:80:2: note: Taking false branch
if (cmd != RPMSG_CREATE_EPT_IOCTL)
^
drivers/rpmsg/rpmsg_ctrl.c:83:6: note: Calling 'copy_from_user'
if (copy_from_user(&eptinfo, argp, sizeof(eptinfo)))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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:2: note: Taking true branch
if (!should_fail_usercopy() && likely(access_ok(from, n))) {
^
include/linux/uaccess.h:159:9: note: Calling 'raw_copy_from_user'
res = raw_copy_from_user(to, from, n);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
arch/mips/include/asm/uaccess.h:455:2: note: Returning without writing to 'to->src'
return __cu_len_r;
^
include/linux/uaccess.h:159:9: note: Returning from 'raw_copy_from_user'
res = raw_copy_from_user(to, from, n);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:161:6: note: Assuming 'res' is 0
if (unlikely(res))
^
include/linux/compiler.h:48:24: note: expanded from macro 'unlikely'
# define unlikely(x) (__branch_check__(x, 0, __builtin_constant_p(x)))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
______r = __builtin_expect(!!(x), expect); \
^~~~
include/linux/uaccess.h:161:2: note: Taking false branch
if (unlikely(res))
^
include/linux/uaccess.h:163:2: note: Returning without writing to 'to->src'
return res;
^
include/linux/uaccess.h:192:7: note: Returning from '_copy_from_user'
n = _copy_from_user(to, from, n);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/uaccess.h:193:2: note: Returning without writing to 'to->src'
return n;
^
drivers/rpmsg/rpmsg_ctrl.c:83:6: note: Returning from 'copy_from_user'
if (copy_from_user(&eptinfo, argp, sizeof(eptinfo)))
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/rpmsg/rpmsg_ctrl.c:83:2: note: Taking false branch
if (copy_from_user(&eptinfo, argp, sizeof(eptinfo)))
^
drivers/rpmsg/rpmsg_ctrl.c:88:13: note: Assigned value is garbage or undefined
chinfo.src = eptinfo.src;
^ ~~~~~~~~~~~
Suppressed 1 warnings (1 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.
drivers/staging/greybus/fw-management.c:451:9: warning: 2nd function call argument is an uninitialized value [clang-analyzer-core.CallAndMessage]
ret = fw_mgmt_load_and_validate_operation(fw_mgmt,
^
drivers/staging/greybus/fw-management.c:552:6: note: Assuming field 'disabled' is false
if (!fw_mgmt->disabled) {
^~~~~~~~~~~~~~~~~~
drivers/staging/greybus/fw-management.c:552:2: note: Taking true branch
if (!fw_mgmt->disabled) {
^
drivers/staging/greybus/fw-management.c:553:9: note: Calling 'gb_pm_runtime_get_sync'
ret = gb_pm_runtime_get_sync(bundle);
vim +88 drivers/rpmsg/rpmsg_ctrl.c
617d32938d1be0 Arnaud Pouliquen 2022-01-24 71
617d32938d1be0 Arnaud Pouliquen 2022-01-24 72 static long rpmsg_ctrldev_ioctl(struct file *fp, unsigned int cmd,
617d32938d1be0 Arnaud Pouliquen 2022-01-24 73 unsigned long arg)
617d32938d1be0 Arnaud Pouliquen 2022-01-24 74 {
617d32938d1be0 Arnaud Pouliquen 2022-01-24 75 struct rpmsg_ctrldev *ctrldev = fp->private_data;
617d32938d1be0 Arnaud Pouliquen 2022-01-24 76 void __user *argp = (void __user *)arg;
617d32938d1be0 Arnaud Pouliquen 2022-01-24 77 struct rpmsg_endpoint_info eptinfo;
617d32938d1be0 Arnaud Pouliquen 2022-01-24 78 struct rpmsg_channel_info chinfo;
617d32938d1be0 Arnaud Pouliquen 2022-01-24 79
617d32938d1be0 Arnaud Pouliquen 2022-01-24 80 if (cmd != RPMSG_CREATE_EPT_IOCTL)
617d32938d1be0 Arnaud Pouliquen 2022-01-24 81 return -EINVAL;
617d32938d1be0 Arnaud Pouliquen 2022-01-24 82
617d32938d1be0 Arnaud Pouliquen 2022-01-24 83 if (copy_from_user(&eptinfo, argp, sizeof(eptinfo)))
617d32938d1be0 Arnaud Pouliquen 2022-01-24 84 return -EFAULT;
617d32938d1be0 Arnaud Pouliquen 2022-01-24 85
617d32938d1be0 Arnaud Pouliquen 2022-01-24 86 memcpy(chinfo.name, eptinfo.name, RPMSG_NAME_SIZE);
617d32938d1be0 Arnaud Pouliquen 2022-01-24 87 chinfo.name[RPMSG_NAME_SIZE - 1] = '\0';
617d32938d1be0 Arnaud Pouliquen 2022-01-24 @88 chinfo.src = eptinfo.src;
617d32938d1be0 Arnaud Pouliquen 2022-01-24 89 chinfo.dst = eptinfo.dst;
617d32938d1be0 Arnaud Pouliquen 2022-01-24 90
617d32938d1be0 Arnaud Pouliquen 2022-01-24 91 return rpmsg_chrdev_eptdev_create(ctrldev->rpdev, &ctrldev->dev, chinfo);
617d32938d1be0 Arnaud Pouliquen 2022-01-24 92 };
617d32938d1be0 Arnaud Pouliquen 2022-01-24 93
--
0-DAY CI Kernel Test Service
https://01.org/lkp
next reply other threads:[~2022-05-08 23:23 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-05-08 23:23 kernel test robot [this message]
-- strict thread matches above, loose matches on Subject: below --
2022-06-01 8:18 drivers/rpmsg/rpmsg_ctrl.c:88:13: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign] kernel test robot
2022-05-11 16:27 kernel test robot
2022-05-08 9:58 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=202205090701.WkKGSFMz-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.