* drivers/rpmsg/rpmsg_ctrl.c:88:13: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
@ 2022-05-11 16:27 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-05-11 16:27 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 30913 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: feb9c5e19e913b53cb536a7aa7c9f20107bb51ec
commit: 617d32938d1be0d67bad73a914635bf787c319c1 rpmsg: Move the rpmsg control device from rpmsg_char to rpmsg_ctrl
date: 8 weeks ago
:::::: branch date: 22 hours ago
:::::: commit date: 8 weeks ago
config: mips-randconfig-c004-20220508 (https://download.01.org/0day-ci/archive/20220512/202205120048.uRdqtDmF-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 >>)
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:937:2: note: Value stored to 'ret' is never read
ret = lgdt3306a_write_reg(state, 0x103d, val);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:940:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = lgdt3306a_read_reg(state, 0x1036, &val);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:940:2: note: Value stored to 'ret' is never read
ret = lgdt3306a_read_reg(state, 0x1036, &val);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:943:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = lgdt3306a_write_reg(state, 0x1036, val);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:943:2: note: Value stored to 'ret' is never read
ret = lgdt3306a_write_reg(state, 0x1036, val);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:946:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = lgdt3306a_read_reg(state, 0x211f, &val);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:946:2: note: Value stored to 'ret' is never read
ret = lgdt3306a_read_reg(state, 0x211f, &val);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:948:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = lgdt3306a_write_reg(state, 0x211f, val);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:948:2: note: Value stored to 'ret' is never read
ret = lgdt3306a_write_reg(state, 0x211f, val);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:951:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = lgdt3306a_read_reg(state, 0x2849, &val);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:951:2: note: Value stored to 'ret' is never read
ret = lgdt3306a_read_reg(state, 0x2849, &val);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:953:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = lgdt3306a_write_reg(state, 0x2849, val);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:953:2: note: Value stored to 'ret' is never read
ret = lgdt3306a_write_reg(state, 0x2849, val);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:956:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = lgdt3306a_set_vsb(state);
^ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:956:2: note: Value stored to 'ret' is never read
ret = lgdt3306a_set_vsb(state);
^ ~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:959:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = lgdt3306a_mpeg_mode(state, state->cfg->mpeg_mode);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:959:2: note: Value stored to 'ret' is never read
ret = lgdt3306a_mpeg_mode(state, state->cfg->mpeg_mode);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:962:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = lgdt3306a_mpeg_tristate(state, 1);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:962:2: note: Value stored to 'ret' is never read
ret = lgdt3306a_mpeg_tristate(state, 1);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:996:3: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = fe->ops.tuner_ops.set_params(fe);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:996:3: note: Value stored to 'ret' is never read
ret = fe->ops.tuner_ops.set_params(fe);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:1183:2: warning: Value stored to 'modeOper' is never read [clang-analyzer-deadcode.DeadStores]
modeOper = LG3306_UNKNOWN_MODE;
^ ~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/lgdt3306a.c:1183:2: note: Value stored to 'modeOper' is never read
modeOper = LG3306_UNKNOWN_MODE;
^ ~~~~~~~~~~~~~~~~~~~
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.
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/media/dvb-frontends/tda1004x.c:547:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = tda1004x_do_upload(state, fw->data, fw->size, TDA10046H_CODE_CPT, TDA10046H_CODE_IN);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/tda1004x.c:547:2: note: Value stored to 'ret' is never read
ret = tda1004x_do_upload(state, fw->data, fw->size, TDA10046H_CODE_CPT, TDA10046H_CODE_IN);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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/media/dvb-frontends/sp887x.c:456:39: warning: The result of the left shift is undefined because the left operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult]
(sp887x_readreg(state, 0xc07) << 6);
--
~~~~~~~^~~~~~~~~~~~~~~~~~
drivers/clocksource/timer-stm32-lp.c:23:8: note: Excessive padding in 'struct stm32_lp_private' (52 padding bytes, where 20 is optimal). Optimal fields order: clkevt, reg, period, dev, consider reordering the fields or adding explicit padding members
struct stm32_lp_private {
~~~~~~~^~~~~~~~~~~~~~~~~~
Suppressed 3 warnings (2 in non-user code, 1 with check filters).
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.
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.
6 warnings generated.
drivers/media/dvb-frontends/cxd2820r_t.c:14:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = priv->client[0];
^~~~~~ ~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/cxd2820r_t.c:14:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = priv->client[0];
^~~~~~ ~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/cxd2820r_t.c:130:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = priv->client[0];
^~~~~~ ~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/cxd2820r_t.c:130:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = priv->client[0];
^~~~~~ ~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/cxd2820r_t.c:250:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = priv->client[0];
^~~~~~ ~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/cxd2820r_t.c:250:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = priv->client[0];
^~~~~~ ~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/cxd2820r_t.c:375:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = priv->client[0];
^~~~~~ ~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/cxd2820r_t.c:375:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = priv->client[0];
^~~~~~ ~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/cxd2820r_t.c:393:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = priv->client[0];
^~~~~~ ~~~~~~~~~~~~~~~
drivers/media/dvb-frontends/cxd2820r_t.c:393:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = priv->client[0];
^~~~~~ ~~~~~~~~~~~~~~~
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.
Suppressed 2 warnings (1 in non-user code, 1 with check filters).
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.
3 warnings generated.
drivers/spi/spi-tegra210-quad.c:1167:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = tegra_qspi_start_dma_based_transfer(tqspi, t);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-tegra210-quad.c:1167:3: note: Value stored to 'err' is never read
err = tegra_qspi_start_dma_based_transfer(tqspi, t);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-tegra210-quad.c:1169:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = tegra_qspi_start_cpu_based_transfer(tqspi, t);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-tegra210-quad.c:1169:3: note: Value stored to 'err' is never read
err = tegra_qspi_start_cpu_based_transfer(tqspi, t);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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.
3 warnings generated.
drivers/spi/spi-tegra20-slink.c:952:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = tegra_slink_start_dma_based_transfer(tspi, t);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-tegra20-slink.c:952:3: note: Value stored to 'err' is never read
err = tegra_slink_start_dma_based_transfer(tspi, t);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-tegra20-slink.c:954:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = tegra_slink_start_cpu_based_transfer(tspi, t);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-tegra20-slink.c:954:3: note: Value stored to 'err' is never read
err = tegra_slink_start_cpu_based_transfer(tspi, t);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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.
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.
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* drivers/rpmsg/rpmsg_ctrl.c:88:13: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
@ 2022-06-01 8:18 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-06-01 8:18 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 15659 bytes --]
::::::
:::::: Manual check reason: "low confidence static check warning: drivers/rpmsg/rpmsg_ctrl.c:88:13: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]"
::::::
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: 700170bf6b4d773e328fa54ebb70ba444007c702
commit: 617d32938d1be0d67bad73a914635bf787c319c1 rpmsg: Move the rpmsg control device from rpmsg_char to rpmsg_ctrl
date: 3 months ago
:::::: branch date: 8 hours ago
:::::: commit date: 3 months ago
config: mips-randconfig-c004-20220531 (https://download.01.org/0day-ci/archive/20220601/202206011620.OySYChYh-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project c825abd6b0198fb088d9752f556a70705bc99dfd)
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-mipsel-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 where applicable
Reported-by: kernel test robot <lkp@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
^
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/nvme/target/fc.c:1454:2: note: Loop condition is false. Exiting loop
spin_lock_irqsave(&nvmet_fc_tgtlock, flags);
^
include/linux/spinlock.h:377:43: note: expanded from macro 'spin_lock_irqsave'
#define spin_lock_irqsave(lock, flags) \
^
drivers/nvme/target/fc.c:1468:2: note: Memory is released
kfree(tgtport);
^~~~~~~~~~~~~~
include/linux/kref.h:65:3: note: Returning; memory was released
release(kref);
^~~~~~~~~~~~~
drivers/nvme/target/fc.c:1476:2: note: Returning; memory was released
kref_put(&tgtport->ref, nvmet_fc_free_tgtport);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/target/fc.c:1063:3: note: Returning; memory was released via 1st parameter
nvmet_fc_tgtport_put(tgtport);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/target/fc.c:1125:20: note: Returning; memory was released via 1st parameter
assoc->hostport = nvmet_fc_alloc_hostport(tgtport, hosthandle);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/target/fc.c:1126:2: note: Taking false branch
if (IS_ERR(assoc->hostport))
^
drivers/nvme/target/fc.c:1133:2: note: Loop condition is false. Exiting loop
INIT_WORK(&assoc->del_work, nvmet_fc_delete_assoc);
^
include/linux/workqueue.h:245:2: note: expanded from macro 'INIT_WORK'
__INIT_WORK((_work), (_func), 0)
^
include/linux/workqueue.h:225:2: note: expanded from macro '__INIT_WORK'
do { \
^
drivers/nvme/target/fc.c:1136:2: note: Loop condition is true. Entering loop body
while (needrandom) {
^
drivers/nvme/target/fc.c:1140:3: note: Calling 'spinlock_check'
spin_lock_irqsave(&tgtport->lock, flags);
^
include/linux/spinlock.h:379:24: note: expanded from macro 'spin_lock_irqsave'
raw_spin_lock_irqsave(spinlock_check(lock), flags); \
~~~~~~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/spinlock.h:242:34: note: expanded from macro 'raw_spin_lock_irqsave'
flags = _raw_spin_lock_irqsave(lock); \
^~~~
include/linux/spinlock.h:324:2: note: Use of memory after it is freed
return &lock->rlock;
^ ~~~~~~~~~~~~
Suppressed 3 warnings (1 in non-user code, 2 with check filters).
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.
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.
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.
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: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: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/nvme/host/core.c:3957:3: warning: Use of memory after it is freed [clang-analyzer-unix.Malloc]
nvme_put_ns(ns);
^
drivers/nvme/host/core.c:4147:6: note: Assuming field 'state' is equal to NVME_CTRL_LIVE
if (ctrl->state != NVME_CTRL_LIVE || !ctrl->tagset)
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/nvme/host/core.c:4147:6: note: Left side of '||' is false
drivers/nvme/host/core.c:4147:39: note: Assuming field 'tagset' is non-null
if (ctrl->state != NVME_CTRL_LIVE || !ctrl->tagset)
^~~~~~~~~~~~~
drivers/nvme/host/core.c:4147:2: note: Taking false branch
if (ctrl->state != NVME_CTRL_LIVE || !ctrl->tagset)
^
drivers/nvme/host/core.c:4150:2: note: Taking false branch
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
^ permalink raw reply [flat|nested] 4+ messages in thread
* drivers/rpmsg/rpmsg_ctrl.c:88:13: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
@ 2022-05-08 23:23 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-05-08 23:23 UTC (permalink / raw)
To: kbuild
[-- 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
^ permalink raw reply [flat|nested] 4+ messages in thread
* drivers/rpmsg/rpmsg_ctrl.c:88:13: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign]
@ 2022-05-08 9:58 kernel test robot
0 siblings, 0 replies; 4+ messages in thread
From: kernel test robot @ 2022-05-08 9:58 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 17320 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: 30c8e80f79329617012f07b09b70114592092ea4
commit: 617d32938d1be0d67bad73a914635bf787c319c1 rpmsg: Move the rpmsg control device from rpmsg_char to rpmsg_ctrl
date: 8 weeks ago
:::::: branch date: 16 hours ago
:::::: commit date: 8 weeks ago
config: mips-randconfig-c004-20220508 (https://download.01.org/0day-ci/archive/20220508/202205081701.gRKOwqUq-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project a385645b470e2d3a1534aae618ea56b31177639f)
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 >>)
8 warnings generated.
drivers/media/i2c/ov2659.c:895:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = ov2659->client;
^~~~~~ ~~~~~~~~~~~~~~
drivers/media/i2c/ov2659.c:895:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = ov2659->client;
^~~~~~ ~~~~~~~~~~~~~~
drivers/media/i2c/ov2659.c:986:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = v4l2_get_subdevdata(sd);
^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/i2c/ov2659.c:986:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = v4l2_get_subdevdata(sd);
^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/i2c/ov2659.c:1002:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = v4l2_get_subdevdata(sd);
^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/i2c/ov2659.c:1002:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = v4l2_get_subdevdata(sd);
^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/i2c/ov2659.c:1028:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = v4l2_get_subdevdata(sd);
^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/i2c/ov2659.c:1028:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = v4l2_get_subdevdata(sd);
^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/i2c/ov2659.c:1151:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = ov2659->client;
^~~~~~ ~~~~~~~~~~~~~~
drivers/media/i2c/ov2659.c:1151:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = ov2659->client;
^~~~~~ ~~~~~~~~~~~~~~
drivers/media/i2c/ov2659.c:1160:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = ov2659->client;
^~~~~~ ~~~~~~~~~~~~~~
drivers/media/i2c/ov2659.c:1160:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = ov2659->client;
^~~~~~ ~~~~~~~~~~~~~~
drivers/media/i2c/ov2659.c:1312:21: warning: Value stored to 'client' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct i2c_client *client = v4l2_get_subdevdata(sd);
^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
drivers/media/i2c/ov2659.c:1312:21: note: Value stored to 'client' during its initialization is never read
struct i2c_client *client = v4l2_get_subdevdata(sd);
^~~~~~ ~~~~~~~~~~~~~~~~~~~~~~~
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.
Suppressed 2 warnings (1 in non-user code, 1 with check filters).
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.
3 warnings generated.
drivers/spi/spi-tegra210-quad.c:1167:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = tegra_qspi_start_dma_based_transfer(tqspi, t);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-tegra210-quad.c:1167:3: note: Value stored to 'err' is never read
err = tegra_qspi_start_dma_based_transfer(tqspi, t);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-tegra210-quad.c:1169:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = tegra_qspi_start_cpu_based_transfer(tqspi, t);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-tegra210-quad.c:1169:3: note: Value stored to 'err' is never read
err = tegra_qspi_start_cpu_based_transfer(tqspi, t);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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.
3 warnings generated.
drivers/spi/spi-tegra20-slink.c:952:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = tegra_slink_start_dma_based_transfer(tspi, t);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-tegra20-slink.c:952:3: note: Value stored to 'err' is never read
err = tegra_slink_start_dma_based_transfer(tspi, t);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-tegra20-slink.c:954:3: warning: Value stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
err = tegra_slink_start_cpu_based_transfer(tspi, t);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/spi/spi-tegra20-slink.c:954:3: note: Value stored to 'err' is never read
err = tegra_slink_start_cpu_based_transfer(tspi, t);
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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.
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.
6 warnings generated.
kernel/trace/trace.c:361:2: warning: Access to field 'next' results in a dereference of a null pointer [clang-analyzer-core.NullDereference]
rcu_assign_pointer(*p, (*p)->next);
^
include/linux/rcupdate.h:449:35: note: expanded from macro 'rcu_assign_pointer'
uintptr_t _r_a_p__v = (uintptr_t)(v); \
^
kernel/trace/trace.c:404:2: note: Value assigned to 'ftrace_exports_list'
mutex_lock(&ftrace_export_lock);
vim +88 drivers/rpmsg/rpmsg_ctrl.c
617d32938d1be0d Arnaud Pouliquen 2022-01-24 71
617d32938d1be0d Arnaud Pouliquen 2022-01-24 72 static long rpmsg_ctrldev_ioctl(struct file *fp, unsigned int cmd,
617d32938d1be0d Arnaud Pouliquen 2022-01-24 73 unsigned long arg)
617d32938d1be0d Arnaud Pouliquen 2022-01-24 74 {
617d32938d1be0d Arnaud Pouliquen 2022-01-24 75 struct rpmsg_ctrldev *ctrldev = fp->private_data;
617d32938d1be0d Arnaud Pouliquen 2022-01-24 76 void __user *argp = (void __user *)arg;
617d32938d1be0d Arnaud Pouliquen 2022-01-24 77 struct rpmsg_endpoint_info eptinfo;
617d32938d1be0d Arnaud Pouliquen 2022-01-24 78 struct rpmsg_channel_info chinfo;
617d32938d1be0d Arnaud Pouliquen 2022-01-24 79
617d32938d1be0d Arnaud Pouliquen 2022-01-24 80 if (cmd != RPMSG_CREATE_EPT_IOCTL)
617d32938d1be0d Arnaud Pouliquen 2022-01-24 81 return -EINVAL;
617d32938d1be0d Arnaud Pouliquen 2022-01-24 82
617d32938d1be0d Arnaud Pouliquen 2022-01-24 83 if (copy_from_user(&eptinfo, argp, sizeof(eptinfo)))
617d32938d1be0d Arnaud Pouliquen 2022-01-24 84 return -EFAULT;
617d32938d1be0d Arnaud Pouliquen 2022-01-24 85
617d32938d1be0d Arnaud Pouliquen 2022-01-24 86 memcpy(chinfo.name, eptinfo.name, RPMSG_NAME_SIZE);
617d32938d1be0d Arnaud Pouliquen 2022-01-24 87 chinfo.name[RPMSG_NAME_SIZE - 1] = '\0';
617d32938d1be0d Arnaud Pouliquen 2022-01-24 @88 chinfo.src = eptinfo.src;
617d32938d1be0d Arnaud Pouliquen 2022-01-24 89 chinfo.dst = eptinfo.dst;
617d32938d1be0d Arnaud Pouliquen 2022-01-24 90
617d32938d1be0d Arnaud Pouliquen 2022-01-24 91 return rpmsg_chrdev_eptdev_create(ctrldev->rpdev, &ctrldev->dev, chinfo);
617d32938d1be0d Arnaud Pouliquen 2022-01-24 92 };
617d32938d1be0d Arnaud Pouliquen 2022-01-24 93
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] 4+ messages in thread
end of thread, other threads:[~2022-06-01 8:18 UTC | newest]
Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-05-11 16:27 drivers/rpmsg/rpmsg_ctrl.c:88:13: warning: Assigned value is garbage or undefined [clang-analyzer-core.uninitialized.Assign] kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2022-06-01 8:18 kernel test robot
2022-05-08 23:23 kernel test robot
2022-05-08 9:58 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.