* drivers/mailbox/pcc.c:190:6: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
@ 2022-03-22 23:53 kernel test robot
0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2022-03-22 23:53 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 14390 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: Sudeep Holla <sudeep.holla@arm.com>
CC: Jassi Brar <jaswinder.singh@linaro.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 5191290407668028179f2544a11ae9b57f0bcf07
commit: 45ec2dafb1775f7d806fbd2387e3f2cc2f56142d mailbox: pcc: Drop handling invalid bit-width in {read,write}_register
date: 5 months ago
:::::: branch date: 6 hours ago
:::::: commit date: 5 months ago
config: x86_64-randconfig-c007-20220321 (https://download.01.org/0day-ci/archive/20220323/202203230742.sacV4ntO-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 85e9b2687a13d1908aa86d1b89c5ce398a06cd39)
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
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=45ec2dafb1775f7d806fbd2387e3f2cc2f56142d
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 45ec2dafb1775f7d806fbd2387e3f2cc2f56142d
# save the config file to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 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 >>)
^~~~~~
net/9p/trans_virtio.c:408:2: note: Taking false branch
if (uodata) {
^
net/9p/trans_virtio.c:428:13: note: Assuming 'uidata' is non-null
} else if (uidata) {
^~~~~~
net/9p/trans_virtio.c:428:9: note: Taking true branch
} else if (uidata) {
^
net/9p/trans_virtio.c:429:11: note: Calling 'p9_get_mapped_pages'
int n = p9_get_mapped_pages(chan, &in_pages, uidata,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/9p/trans_virtio.c:319:6: note: Assuming the condition is true
if (!iov_iter_count(data))
^~~~~~~~~~~~~~~~~~~~~
net/9p/trans_virtio.c:319:2: note: Taking true branch
if (!iov_iter_count(data))
^
net/9p/trans_virtio.c:320:3: note: Returning without writing to '*offs'
return 0;
^
net/9p/trans_virtio.c:429:11: note: Returning from 'p9_get_mapped_pages'
int n = p9_get_mapped_pages(chan, &in_pages, uidata,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/9p/trans_virtio.c:431:7: note: 'n' is >= 0
if (n < 0) {
^
net/9p/trans_virtio.c:431:3: note: Taking false branch
if (n < 0) {
^
net/9p/trans_virtio.c:435:32: note: The right operand of '+' is a garbage value
in_nr_pages = DIV_ROUND_UP(n + offs, PAGE_SIZE);
^
include/linux/math.h:36:22: note: expanded from macro 'DIV_ROUND_UP'
#define DIV_ROUND_UP __KERNEL_DIV_ROUND_UP
^
include/uapi/linux/const.h:34:40: note: expanded from macro '__KERNEL_DIV_ROUND_UP'
#define __KERNEL_DIV_ROUND_UP(n, d) (((n) + (d) - 1) / (d))
^
net/9p/trans_virtio.c:475:3: warning: Value stored to 'in' is never read [clang-analyzer-deadcode.DeadStores]
in += pack_sg_list_p(chan->sg, out + in, VIRTQUEUE_NUM,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
net/9p/trans_virtio.c:475:3: note: Value stored to 'in' is never read
in += pack_sg_list_p(chan->sg, out + in, VIRTQUEUE_NUM,
^ ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
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.
4 warnings generated.
drivers/media/dvb-frontends/ds3000.c:588:4: warning: Value stored to 'snr_value' is never read [clang-analyzer-deadcode.DeadStores]
snr_value = 0x0013;
^ ~~~~~~
drivers/media/dvb-frontends/ds3000.c:588:4: note: Value stored to 'snr_value' is never read
snr_value = 0x0013;
^ ~~~~~~
drivers/media/dvb-frontends/ds3000.c:720:28: warning: The result of the left shift is undefined because the left operand is negative [clang-analyzer-core.UndefinedBinaryOperatorResult]
data |= ((d->msg_len - 1) << 3) | 0x07;
~~~~~~~~~~~~~~~~ ^
drivers/media/dvb-frontends/ds3000.c:698:2: note: Assuming 'debug' is 0
dprintk("%s(", __func__);
^
drivers/media/dvb-frontends/ds3000.c:25:7: note: expanded from macro 'dprintk'
if (debug) \
^~~~~
drivers/media/dvb-frontends/ds3000.c:698:2: note: Taking false branch
dprintk("%s(", __func__);
^
drivers/media/dvb-frontends/ds3000.c:25:3: note: expanded from macro 'dprintk'
if (debug) \
^
drivers/media/dvb-frontends/ds3000.c:698:2: note: Loop condition is false. Exiting loop
dprintk("%s(", __func__);
^
drivers/media/dvb-frontends/ds3000.c:24:2: note: expanded from macro 'dprintk'
do { \
^
drivers/media/dvb-frontends/ds3000.c:699:15: note: Assuming 'i' is >= field 'msg_len'
for (i = 0 ; i < d->msg_len;) {
^~~~~~~~~~~~~~
drivers/media/dvb-frontends/ds3000.c:699:2: note: Loop condition is false. Execution continues on line 706
for (i = 0 ; i < d->msg_len;) {
^
drivers/media/dvb-frontends/ds3000.c:711:2: note: Loop condition is false. Execution continues on line 714
for (i = 0; i < d->msg_len; i++)
^
drivers/media/dvb-frontends/ds3000.c:720:28: note: The result of the left shift is undefined because the left operand is negative
data |= ((d->msg_len - 1) << 3) | 0x07;
~~~~~~~~~~~~~~~~ ^
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
3 warnings generated.
drivers/media/dvb-frontends/mb86a16.c:1151:3: warning: Value stored to 'j' is never read [clang-analyzer-deadcode.DeadStores]
j = 0;
^ ~
drivers/media/dvb-frontends/mb86a16.c:1151:3: note: Value stored to 'j' is never read
j = 0;
^ ~
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.
4 warnings generated.
>> drivers/mailbox/pcc.c:190:6: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
val &= reg->preserve_mask;
^
drivers/mailbox/pcc.c:345:9: note: Calling 'pcc_chan_reg_read_modify_write'
return pcc_chan_reg_read_modify_write(&pchan->db);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mailbox/pcc.c:184:2: note: 'val' declared without an initial value
u64 val;
^~~~~~~
drivers/mailbox/pcc.c:186:8: note: Calling 'pcc_chan_reg_read'
ret = pcc_chan_reg_read(reg, &val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mailbox/pcc.c:153:6: note: Assuming field 'gas' is non-null, which participates in a condition later
if (!reg->gas) {
^~~~~~~~~
drivers/mailbox/pcc.c:153:2: note: Taking false branch
if (!reg->gas) {
^
drivers/mailbox/pcc.c:158:6: note: Assuming field 'vaddr' is non-null
if (reg->vaddr)
^~~~~~~~~~
drivers/mailbox/pcc.c:158:2: note: Taking true branch
if (reg->vaddr)
^
drivers/mailbox/pcc.c:159:3: note: Calling 'read_register'
read_register(reg->vaddr, val, reg->gas->bit_width);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mailbox/pcc.c:115:2: note: 'Default' branch taken. Execution continues on line 115
switch (bit_width) {
^
drivers/mailbox/pcc.c:129:1: note: Returning without writing to '*val'
}
^
drivers/mailbox/pcc.c:159:3: note: Returning from 'read_register'
read_register(reg->vaddr, val, reg->gas->bit_width);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mailbox/pcc.c:163:2: note: Returning without writing to '*val'
return ret;
^
drivers/mailbox/pcc.c:163:2: note: Returning zero (loaded from 'ret'), which participates in a condition later
return ret;
^~~~~~~~~~
drivers/mailbox/pcc.c:186:8: note: Returning from 'pcc_chan_reg_read'
ret = pcc_chan_reg_read(reg, &val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mailbox/pcc.c:187:6: note: 'ret' is 0
if (ret)
^~~
drivers/mailbox/pcc.c:187:2: note: Taking false branch
if (ret)
^
drivers/mailbox/pcc.c:190:6: note: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage
val &= reg->preserve_mask;
~~~ ^
Suppressed 3 warnings (3 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
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.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
3 warnings generated.
net/ipv4/arp.c:603:2: warning: Null pointer passed as 2nd argument to memory copy function [clang-analyzer-unix.cstring.NullArg]
memcpy(arp_ptr, src_hw, dev->addr_len);
^
net/ipv4/arp.c:680:29: note: Calling '__in_dev_get_rcu'
struct in_device *in_dev = __in_dev_get_rcu(dev);
^~~~~~~~~~~~~~~~~~~~~
include/linux/inetdevice.h:228:9: note: Left side of '||' is false
return rcu_dereference(dev->ip_ptr);
^
include/linux/rcupdate.h:596:28: note: expanded from macro 'rcu_dereference'
#define rcu_dereference(p) rcu_dereference_check(p, 0)
^
include/linux/rcupdate.h:528:2: note: expanded from macro 'rcu_dereference_check'
__rcu_dereference_check((p), (c) || rcu_read_lock_held(), __rcu)
^
include/linux/rcupdate.h:389:48: note: expanded from macro '__rcu_dereference_check'
typeof(*p) *________p1 = (typeof(*p) *__force)READ_ONCE(p); \
^
include/asm-generic/rwonce.h:49:2: note: expanded from macro 'READ_ONCE'
compiletime_assert_rwonce_type(x); \
^
include/asm-generic/rwonce.h:36:21: note: expanded from macro 'compiletime_assert_rwonce_type'
compiletime_assert(__native_word(t) || sizeof(t) == sizeof(long long), \
^
include/linux/compiler_types.h:290:3: note: expanded from macro '__native_word'
(sizeof(t) == sizeof(char) || sizeof(t) == sizeof(short) || \
^
include/linux/inetdevice.h:228:9: note: Left side of '||' is false
return rcu_dereference(dev->ip_ptr);
^
include/linux/rcupdate.h:596:28: note: expanded from macro 'rcu_dereference'
#define rcu_dereference(p) rcu_dereference_check(p, 0)
vim +190 drivers/mailbox/pcc.c
800cda7b63f22b Sudeep Holla 2021-09-17 180
800cda7b63f22b Sudeep Holla 2021-09-17 181 static int pcc_chan_reg_read_modify_write(struct pcc_chan_reg *reg)
800cda7b63f22b Sudeep Holla 2021-09-17 182 {
800cda7b63f22b Sudeep Holla 2021-09-17 183 int ret = 0;
800cda7b63f22b Sudeep Holla 2021-09-17 184 u64 val;
800cda7b63f22b Sudeep Holla 2021-09-17 185
800cda7b63f22b Sudeep Holla 2021-09-17 186 ret = pcc_chan_reg_read(reg, &val);
800cda7b63f22b Sudeep Holla 2021-09-17 187 if (ret)
800cda7b63f22b Sudeep Holla 2021-09-17 188 return ret;
800cda7b63f22b Sudeep Holla 2021-09-17 189
800cda7b63f22b Sudeep Holla 2021-09-17 @190 val &= reg->preserve_mask;
800cda7b63f22b Sudeep Holla 2021-09-17 191 val |= reg->set_mask;
800cda7b63f22b Sudeep Holla 2021-09-17 192
800cda7b63f22b Sudeep Holla 2021-09-17 193 return pcc_chan_reg_write(reg, val);
800cda7b63f22b Sudeep Holla 2021-09-17 194 }
800cda7b63f22b Sudeep Holla 2021-09-17 195
:::::: The code at line 190 was first introduced by commit
:::::: 800cda7b63f22be62e67142f1202d2ead2dff2e8 mailbox: pcc: Add PCC register bundle and associated accessor functions
:::::: TO: Sudeep Holla <sudeep.holla@arm.com>
:::::: CC: Jassi Brar <jaswinder.singh@linaro.org>
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] 3+ messages in thread
* drivers/mailbox/pcc.c:190:6: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
@ 2022-03-25 19:20 kernel test robot
0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2022-03-25 19:20 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 15474 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: Sudeep Holla <sudeep.holla@arm.com>
CC: Jassi Brar <jaswinder.singh@linaro.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 34af78c4e616c359ed428d79fe4758a35d2c5473
commit: 45ec2dafb1775f7d806fbd2387e3f2cc2f56142d mailbox: pcc: Drop handling invalid bit-width in {read,write}_register
date: 5 months ago
:::::: branch date: 16 hours ago
:::::: commit date: 5 months ago
config: x86_64-randconfig-c007-20220321 (https://download.01.org/0day-ci/archive/20220326/202203260350.Oyrspszn-lkp(a)intel.com/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 85e9b2687a13d1908aa86d1b89c5ce398a06cd39)
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
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=45ec2dafb1775f7d806fbd2387e3f2cc2f56142d
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 45ec2dafb1775f7d806fbd2387e3f2cc2f56142d
# save the config file to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=x86_64 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 >>)
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:302:3: note: expanded from macro '__compiletime_assert'
if (!(condition)) \
^
drivers/media/cec/core/cec-adap.c:418:10: note: Loop condition is false. Exiting loop
data = list_first_entry(&adap->transmit_queue,
^
include/linux/list.h:522:2: note: expanded from macro 'list_first_entry'
list_entry((ptr)->next, type, member)
^
include/linux/list.h:511:2: note: expanded from macro 'list_entry'
container_of(ptr, type, member)
^
include/linux/kernel.h:495:2: note: expanded from macro 'container_of'
BUILD_BUG_ON_MSG(!__same_type(*(ptr), ((type *)0)->member) && \
^
note: (skipping 1 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:322:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:310:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:300:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/media/cec/core/cec-adap.c:420:3: note: Use of memory after it is freed
cec_data_cancel(data, CEC_TX_STATUS_ABORTED);
^ ~~~~
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
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.
6 warnings generated.
Suppressed 6 warnings (2 in non-user code, 4 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.
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.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
3 warnings generated.
Suppressed 3 warnings (3 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
3 warnings generated.
Suppressed 3 warnings (3 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
3 warnings generated.
Suppressed 3 warnings (3 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
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.
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.
4 warnings generated.
Suppressed 4 warnings (3 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.
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.
4 warnings generated.
>> drivers/mailbox/pcc.c:190:6: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
val &= reg->preserve_mask;
^
drivers/mailbox/pcc.c:345:9: note: Calling 'pcc_chan_reg_read_modify_write'
return pcc_chan_reg_read_modify_write(&pchan->db);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mailbox/pcc.c:184:2: note: 'val' declared without an initial value
u64 val;
^~~~~~~
drivers/mailbox/pcc.c:186:8: note: Calling 'pcc_chan_reg_read'
ret = pcc_chan_reg_read(reg, &val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mailbox/pcc.c:153:6: note: Assuming field 'gas' is non-null, which participates in a condition later
if (!reg->gas) {
^~~~~~~~~
drivers/mailbox/pcc.c:153:2: note: Taking false branch
if (!reg->gas) {
^
drivers/mailbox/pcc.c:158:6: note: Assuming field 'vaddr' is non-null
if (reg->vaddr)
^~~~~~~~~~
drivers/mailbox/pcc.c:158:2: note: Taking true branch
if (reg->vaddr)
^
drivers/mailbox/pcc.c:159:3: note: Calling 'read_register'
read_register(reg->vaddr, val, reg->gas->bit_width);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mailbox/pcc.c:115:2: note: 'Default' branch taken. Execution continues on line 115
switch (bit_width) {
^
drivers/mailbox/pcc.c:129:1: note: Returning without writing to '*val'
}
^
drivers/mailbox/pcc.c:159:3: note: Returning from 'read_register'
read_register(reg->vaddr, val, reg->gas->bit_width);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mailbox/pcc.c:163:2: note: Returning without writing to '*val'
return ret;
^
drivers/mailbox/pcc.c:163:2: note: Returning zero (loaded from 'ret'), which participates in a condition later
return ret;
^~~~~~~~~~
drivers/mailbox/pcc.c:186:8: note: Returning from 'pcc_chan_reg_read'
ret = pcc_chan_reg_read(reg, &val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mailbox/pcc.c:187:6: note: 'ret' is 0
if (ret)
^~~
drivers/mailbox/pcc.c:187:2: note: Taking false branch
if (ret)
^
drivers/mailbox/pcc.c:190:6: note: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage
val &= reg->preserve_mask;
~~~ ^
Suppressed 3 warnings (3 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
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.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
2 warnings generated.
Suppressed 2 warnings (2 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
3 warnings generated.
Suppressed 3 warnings (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.
4 warnings generated.
drivers/media/dvb-core/dvb_ca_en50221.c:760:19: warning: The left operand of '&' is a garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
buf[0], (buf[1] & 0x80) == 0, bytes_read);
^
drivers/media/dvb-core/dvb_ca_en50221.c:1300:2: note: Assuming 'dvb_ca_en50221_debug' is 0
dprintk("%s\n", __func__);
^
drivers/media/dvb-core/dvb_ca_en50221.c:39:6: note: expanded from macro 'dprintk'
if (dvb_ca_en50221_debug) \
^~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-core/dvb_ca_en50221.c:1300:2: note: Taking false branch
dprintk("%s\n", __func__);
^
drivers/media/dvb-core/dvb_ca_en50221.c:39:2: note: expanded from macro 'dprintk'
if (dvb_ca_en50221_debug) \
^
drivers/media/dvb-core/dvb_ca_en50221.c:1300:2: note: Loop condition is false. Exiting loop
dprintk("%s\n", __func__);
^
drivers/media/dvb-core/dvb_ca_en50221.c:38:30: note: expanded from macro 'dprintk'
#define dprintk(fmt, arg...) do { \
^
drivers/media/dvb-core/dvb_ca_en50221.c:1306:9: note: Assuming the condition is true
while (!kthread_should_stop()) {
^~~~~~~~~~~~~~~~~~~~~~
drivers/media/dvb-core/dvb_ca_en50221.c:1306:2: note: Loop condition is true. Entering loop body
while (!kthread_should_stop()) {
^
drivers/media/dvb-core/dvb_ca_en50221.c:1308:7: note: Assuming field 'wakeup' is not equal to 0
if (!ca->wakeup) {
vim +190 drivers/mailbox/pcc.c
800cda7b63f22b Sudeep Holla 2021-09-17 180
800cda7b63f22b Sudeep Holla 2021-09-17 181 static int pcc_chan_reg_read_modify_write(struct pcc_chan_reg *reg)
800cda7b63f22b Sudeep Holla 2021-09-17 182 {
800cda7b63f22b Sudeep Holla 2021-09-17 183 int ret = 0;
800cda7b63f22b Sudeep Holla 2021-09-17 184 u64 val;
800cda7b63f22b Sudeep Holla 2021-09-17 185
800cda7b63f22b Sudeep Holla 2021-09-17 186 ret = pcc_chan_reg_read(reg, &val);
800cda7b63f22b Sudeep Holla 2021-09-17 187 if (ret)
800cda7b63f22b Sudeep Holla 2021-09-17 188 return ret;
800cda7b63f22b Sudeep Holla 2021-09-17 189
800cda7b63f22b Sudeep Holla 2021-09-17 @190 val &= reg->preserve_mask;
800cda7b63f22b Sudeep Holla 2021-09-17 191 val |= reg->set_mask;
800cda7b63f22b Sudeep Holla 2021-09-17 192
800cda7b63f22b Sudeep Holla 2021-09-17 193 return pcc_chan_reg_write(reg, val);
800cda7b63f22b Sudeep Holla 2021-09-17 194 }
800cda7b63f22b Sudeep Holla 2021-09-17 195
:::::: The code at line 190 was first introduced by commit
:::::: 800cda7b63f22be62e67142f1202d2ead2dff2e8 mailbox: pcc: Add PCC register bundle and associated accessor functions
:::::: TO: Sudeep Holla <sudeep.holla@arm.com>
:::::: CC: Jassi Brar <jaswinder.singh@linaro.org>
--
0-DAY CI Kernel Test Service
https://01.org/lkp
^ permalink raw reply [flat|nested] 3+ messages in thread
* drivers/mailbox/pcc.c:190:6: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
@ 2021-11-23 3:14 kernel test robot
0 siblings, 0 replies; 3+ messages in thread
From: kernel test robot @ 2021-11-23 3:14 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 16138 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Sudeep Holla <sudeep.holla@arm.com>
CC: Jassi Brar <jaswinder.singh@linaro.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head: 136057256686de39cc3a07c2e39ef6bc43003ff6
commit: 45ec2dafb1775f7d806fbd2387e3f2cc2f56142d mailbox: pcc: Drop handling invalid bit-width in {read,write}_register
date: 3 weeks ago
:::::: branch date: 29 hours ago
:::::: commit date: 3 weeks ago
config: i386-randconfig-c001-20211121 (attached as .config)
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
# https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=45ec2dafb1775f7d806fbd2387e3f2cc2f56142d
git remote add linus https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
git fetch --no-tags linus master
git checkout 45ec2dafb1775f7d806fbd2387e3f2cc2f56142d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=i386 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 >>)
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 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/leds/led-triggers.c:276:2: warning: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcpy((char *)trig->name, name);
^~~~~~
drivers/leds/led-triggers.c:276:2: note: Call to function 'strcpy' is insecure as it does not provide bounding of the memory buffer. Replace unbounded copy functions with analogous functions that support length arguments such as 'strlcpy'. CWE-119
strcpy((char *)trig->name, name);
^~~~~~
Suppressed 5 warnings (5 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.
Suppressed 6 warnings (5 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.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 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.
Suppressed 6 warnings (6 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.
8 warnings generated.
Suppressed 8 warnings (8 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.
15 warnings generated.
Suppressed 15 warnings (15 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 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.
9 warnings generated.
drivers/base/power/main.c:466:3: warning: Value stored to 'usecs' is never read [clang-analyzer-deadcode.DeadStores]
usecs = 1;
^ ~
drivers/base/power/main.c:466:3: note: Value stored to 'usecs' is never read
usecs = 1;
^ ~
Suppressed 8 warnings (8 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.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
4 warnings generated.
Suppressed 4 warnings (4 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.
Suppressed 6 warnings (6 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 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.
8 warnings generated.
Suppressed 8 warnings (8 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.
8 warnings generated.
Suppressed 8 warnings (8 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.
8 warnings generated.
Suppressed 8 warnings (8 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.
8 warnings generated.
Suppressed 8 warnings (8 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.
8 warnings generated.
Suppressed 8 warnings (8 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.
8 warnings generated.
Suppressed 8 warnings (8 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.
Suppressed 6 warnings (6 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/mailbox/pcc.c:190:6: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign]
val &= reg->preserve_mask;
^
drivers/mailbox/pcc.c:345:9: note: Calling 'pcc_chan_reg_read_modify_write'
return pcc_chan_reg_read_modify_write(&pchan->db);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mailbox/pcc.c:184:2: note: 'val' declared without an initial value
u64 val;
^~~~~~~
drivers/mailbox/pcc.c:186:8: note: Calling 'pcc_chan_reg_read'
ret = pcc_chan_reg_read(reg, &val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mailbox/pcc.c:153:6: note: Assuming field 'gas' is non-null, which participates in a condition later
if (!reg->gas) {
^~~~~~~~~
drivers/mailbox/pcc.c:153:2: note: Taking false branch
if (!reg->gas) {
^
drivers/mailbox/pcc.c:158:6: note: Assuming field 'vaddr' is non-null
if (reg->vaddr)
^~~~~~~~~~
drivers/mailbox/pcc.c:158:2: note: Taking true branch
if (reg->vaddr)
^
drivers/mailbox/pcc.c:159:3: note: Calling 'read_register'
read_register(reg->vaddr, val, reg->gas->bit_width);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mailbox/pcc.c:115:2: note: 'Default' branch taken. Execution continues on line 115
switch (bit_width) {
^
drivers/mailbox/pcc.c:129:1: note: Returning without writing to '*val'
}
^
drivers/mailbox/pcc.c:159:3: note: Returning from 'read_register'
read_register(reg->vaddr, val, reg->gas->bit_width);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mailbox/pcc.c:163:2: note: Returning without writing to '*val'
return ret;
^
drivers/mailbox/pcc.c:163:2: note: Returning zero (loaded from 'ret'), which participates in a condition later
return ret;
^~~~~~~~~~
drivers/mailbox/pcc.c:186:8: note: Returning from 'pcc_chan_reg_read'
ret = pcc_chan_reg_read(reg, &val);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/mailbox/pcc.c:187:6: note: 'ret' is 0
if (ret)
^~~
drivers/mailbox/pcc.c:187:2: note: Taking false branch
if (ret)
^
drivers/mailbox/pcc.c:190:6: note: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage
val &= reg->preserve_mask;
~~~ ^
Suppressed 5 warnings (5 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 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.
Suppressed 6 warnings (6 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.
8 warnings generated.
Suppressed 8 warnings (8 in non-user code).
Use -header-filter=.* to display errors from all non-system headers. Use -system-headers to display errors from system headers as well.
5 warnings generated.
Suppressed 5 warnings (5 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.
10 warnings generated.
drivers/media/dvb-frontends/tc90522.c:51:2: warning: Value stored to 'ret' is never read [clang-analyzer-deadcode.DeadStores]
ret = 0;
^ ~
drivers/media/dvb-frontends/tc90522.c:51:2: note: Value stored to 'ret' is never read
ret = 0;
^ ~
drivers/media/dvb-frontends/tc90522.c:343:2: warning: Value stored to 'mode' is never read [clang-analyzer-deadcode.DeadStores]
mode = 1;
^ ~
drivers/media/dvb-frontends/tc90522.c:343:2: note: Value stored to 'mode' is never read
mode = 1;
^ ~
Suppressed 8 warnings (8 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.
8 warnings generated.
Suppressed 8 warnings (8 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.
10 warnings generated.
drivers/media/dvb-frontends/horus3a.c:141:23: warning: Value stored to 'priv' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct horus3a_priv *priv = fe->tuner_priv;
^~~~ ~~~~~~~~~~~~~~
drivers/media/dvb-frontends/horus3a.c:141:23: note: Value stored to 'priv' during its initialization is never read
struct horus3a_priv *priv = fe->tuner_priv;
^~~~ ~~~~~~~~~~~~~~
drivers/media/dvb-frontends/horus3a.c:149:23: warning: Value stored to 'priv' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct horus3a_priv *priv = fe->tuner_priv;
^~~~ ~~~~~~~~~~~~~~
drivers/media/dvb-frontends/horus3a.c:149:23: note: Value stored to 'priv' during its initialization is never read
struct horus3a_priv *priv = fe->tuner_priv;
^~~~ ~~~~~~~~~~~~~~
Suppressed 8 warnings (8 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 +190 drivers/mailbox/pcc.c
800cda7b63f22b Sudeep Holla 2021-09-17 180
800cda7b63f22b Sudeep Holla 2021-09-17 181 static int pcc_chan_reg_read_modify_write(struct pcc_chan_reg *reg)
800cda7b63f22b Sudeep Holla 2021-09-17 182 {
800cda7b63f22b Sudeep Holla 2021-09-17 183 int ret = 0;
800cda7b63f22b Sudeep Holla 2021-09-17 184 u64 val;
800cda7b63f22b Sudeep Holla 2021-09-17 185
800cda7b63f22b Sudeep Holla 2021-09-17 186 ret = pcc_chan_reg_read(reg, &val);
800cda7b63f22b Sudeep Holla 2021-09-17 187 if (ret)
800cda7b63f22b Sudeep Holla 2021-09-17 188 return ret;
800cda7b63f22b Sudeep Holla 2021-09-17 189
800cda7b63f22b Sudeep Holla 2021-09-17 @190 val &= reg->preserve_mask;
800cda7b63f22b Sudeep Holla 2021-09-17 191 val |= reg->set_mask;
800cda7b63f22b Sudeep Holla 2021-09-17 192
800cda7b63f22b Sudeep Holla 2021-09-17 193 return pcc_chan_reg_write(reg, val);
800cda7b63f22b Sudeep Holla 2021-09-17 194 }
800cda7b63f22b Sudeep Holla 2021-09-17 195
:::::: The code at line 190 was first introduced by commit
:::::: 800cda7b63f22be62e67142f1202d2ead2dff2e8 mailbox: pcc: Add PCC register bundle and associated accessor functions
:::::: TO: Sudeep Holla <sudeep.holla@arm.com>
:::::: CC: Jassi Brar <jaswinder.singh@linaro.org>
---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org
[-- Attachment #2: config.gz --]
[-- Type: application/gzip, Size: 30927 bytes --]
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2022-03-25 19:20 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2022-03-22 23:53 drivers/mailbox/pcc.c:190:6: warning: The left expression of the compound assignment is an uninitialized value. The computed value will also be garbage [clang-analyzer-core.uninitialized.Assign] kernel test robot
-- strict thread matches above, loose matches on Subject: below --
2022-03-25 19:20 kernel test robot
2021-11-23 3:14 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.