* [peterz-queue:sched/core 19/19] kernel/sched/deadline.c:1534:22: warning: Value stored to 'p' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
@ 2021-09-13 5:55 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2021-09-13 5:55 UTC (permalink / raw)
To: kbuild
[-- Attachment #1: Type: text/plain, Size: 18975 bytes --]
CC: llvm(a)lists.linux.dev
CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Yafang Shao <laoar.shao@gmail.com>
CC: Peter Zijlstra <peterz@infradead.org>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git sched/core
head: 2dfdb3d20ad50e2ae2cb84cbceb0f0fc75e79e5d
commit: 2dfdb3d20ad50e2ae2cb84cbceb0f0fc75e79e5d [19/19] sched, dl: support schedstats for deadline sched class
:::::: branch date: 3 days ago
:::::: commit date: 3 days ago
config: riscv-randconfig-c006-20210912 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 261cbe98c38f8c1ee1a482fe76511110e790f58a)
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 riscv cross compiling tool for clang build
# apt-get install binutils-riscv64-linux-gnu
# https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git/commit/?id=2dfdb3d20ad50e2ae2cb84cbceb0f0fc75e79e5d
git remote add peterz-queue https://git.kernel.org/pub/scm/linux/kernel/git/peterz/queue.git
git fetch --no-tags peterz-queue sched/core
git checkout 2dfdb3d20ad50e2ae2cb84cbceb0f0fc75e79e5d
# save the attached .config to linux build tree
COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=riscv clang-analyzer
If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>
clang-analyzer warnings: (new ones prefixed by >>)
include/linux/list.h:628:13: note: expanded from macro 'list_for_each_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
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)
^
note: (skipping 2 expansions in backtrace; use -fmacro-backtrace-limit=0 to see all)
include/linux/compiler_types.h:328:2: note: expanded from macro 'compiletime_assert'
_compiletime_assert(condition, msg, __compiletime_assert_, __COUNTER__)
^
include/linux/compiler_types.h:316:2: note: expanded from macro '_compiletime_assert'
__compiletime_assert(condition, msg, prefix, suffix)
^
include/linux/compiler_types.h:306:2: note: expanded from macro '__compiletime_assert'
do { \
^
drivers/scsi/libsas/sas_expander.c:1852:2: note: Loop condition is true. Entering loop body
list_for_each_entry(ch, &ex->children, siblings) {
^
include/linux/list.h:628:2: note: expanded from macro 'list_for_each_entry'
for (pos = list_first_entry(head, typeof(*pos), member); \
^
drivers/scsi/libsas/sas_expander.c:1853:3: note: Taking true branch
if (dev_is_expander(ch->dev_type)) {
^
drivers/scsi/libsas/sas_expander.c:1854:10: note: Calling 'sas_find_bcast_dev'
res = sas_find_bcast_dev(ch, src_dev);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/libsas/sas_expander.c:1833:8: note: Calling 'sas_get_ex_change_count'
res = sas_get_ex_change_count(dev, &ex_change_count);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/libsas/sas_expander.c:1783:6: note: Assuming 'rg_req' is non-null
if (!rg_req)
^~~~~~~
drivers/scsi/libsas/sas_expander.c:1783:2: note: Taking false branch
if (!rg_req)
^
drivers/scsi/libsas/sas_expander.c:1786:12: note: Calling 'alloc_smp_resp'
rg_resp = alloc_smp_resp(RG_RESP_SIZE);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/libsas/sas_expander.c:163:9: note: Calling 'kzalloc'
return kzalloc(size, GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:686:9: note: Uninitialized value stored to field 'result'
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
include/linux/slab.h:686:2: note: Returning pointer, which participates in a condition later
return kmalloc(size, flags | __GFP_ZERO);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/libsas/sas_expander.c:163:9: note: Returning from 'kzalloc'
return kzalloc(size, GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/libsas/sas_expander.c:163:2: note: Returning pointer, which participates in a condition later
return kzalloc(size, GFP_KERNEL);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/libsas/sas_expander.c:1786:12: note: Returning from 'alloc_smp_resp'
rg_resp = alloc_smp_resp(RG_RESP_SIZE);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/libsas/sas_expander.c:1787:6: note: Assuming 'rg_resp' is non-null
if (!rg_resp) {
^~~~~~~~
drivers/scsi/libsas/sas_expander.c:1787:2: note: Taking false branch
if (!rg_resp) {
^
drivers/scsi/libsas/sas_expander.c:1794:8: note: Calling 'smp_execute_task'
res = smp_execute_task(dev, rg_req, RG_REQ_SIZE, rg_resp,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/libsas/sas_expander.c:148:2: note: Returning without writing to 'resp->result'
return smp_execute_task_sg(dev, &req_sg, &resp_sg);
^
drivers/scsi/libsas/sas_expander.c:148:2: note: Returning value, which participates in a condition later
return smp_execute_task_sg(dev, &req_sg, &resp_sg);
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/libsas/sas_expander.c:1794:8: note: Returning from 'smp_execute_task'
res = smp_execute_task(dev, rg_req, RG_REQ_SIZE, rg_resp,
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
drivers/scsi/libsas/sas_expander.c:1796:6: note: Assuming 'res' is 0
if (res)
^~~
drivers/scsi/libsas/sas_expander.c:1796:2: note: Taking false branch
if (res)
^
drivers/scsi/libsas/sas_expander.c:1798:22: note: The left operand of '!=' is a garbage value
if (rg_resp->result != SMP_RESP_FUNC_ACC) {
~~~~~~~~~~~~~~~ ^
Suppressed 10 warnings (10 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.
16 warnings generated.
kernel/sched/rt.c:2286:6: warning: Value stored to 'this_cpu' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
int this_cpu = this_rq->cpu, cpu;
^~~~~~~~ ~~~~~~~~~~~~
kernel/sched/rt.c:2286:6: note: Value stored to 'this_cpu' during its initialization is never read
int this_cpu = this_rq->cpu, cpu;
^~~~~~~~ ~~~~~~~~~~~~
Suppressed 15 warnings (11 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.
15 warnings generated.
>> kernel/sched/deadline.c:1534:22: warning: Value stored to 'p' during its initialization is never read [clang-analyzer-deadcode.DeadStores]
struct task_struct *p = dl_task_of(dl_se);
^ ~~~~~~~~~~~~~~~~~
kernel/sched/deadline.c:1534:22: note: Value stored to 'p' during its initialization is never read
struct task_struct *p = dl_task_of(dl_se);
^ ~~~~~~~~~~~~~~~~~
Suppressed 14 warnings (11 in non-user code, 3 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.
11 warnings generated.
Suppressed 11 warnings (11 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.
11 warnings generated.
Suppressed 11 warnings (11 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.
11 warnings generated.
Suppressed 11 warnings (11 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.
11 warnings generated.
Suppressed 11 warnings (11 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.
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.
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.
16 warnings generated.
drivers/most/core.c:175: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(buf, "");
^~~~~~
drivers/most/core.c:175: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(buf, "");
^~~~~~
drivers/most/core.c:177:3: warning: Call to function 'strcat' 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 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcat(buf, "rx ");
^~~~~~
drivers/most/core.c:177:3: note: Call to function 'strcat' 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 'strlcat'. CWE-119
strcat(buf, "rx ");
^~~~~~
drivers/most/core.c:179:3: warning: Call to function 'strcat' 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 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcat(buf, "tx ");
^~~~~~
drivers/most/core.c:179:3: note: Call to function 'strcat' 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 'strlcat'. CWE-119
strcat(buf, "tx ");
^~~~~~
drivers/most/core.c:180:2: warning: Call to function 'strcat' 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 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcat(buf, "\n");
^~~~~~
drivers/most/core.c:180:2: note: Call to function 'strcat' 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 'strlcat'. CWE-119
strcat(buf, "\n");
^~~~~~
drivers/most/core.c:191: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(buf, "");
^~~~~~
drivers/most/core.c:191: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(buf, "");
^~~~~~
drivers/most/core.c:193:3: warning: Call to function 'strcat' 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 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcat(buf, "control ");
^~~~~~
drivers/most/core.c:193:3: note: Call to function 'strcat' 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 'strlcat'. CWE-119
strcat(buf, "control ");
^~~~~~
drivers/most/core.c:195:3: warning: Call to function 'strcat' 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 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcat(buf, "async ");
^~~~~~
drivers/most/core.c:195:3: note: Call to function 'strcat' 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 'strlcat'. CWE-119
strcat(buf, "async ");
^~~~~~
drivers/most/core.c:197:3: warning: Call to function 'strcat' 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 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcat(buf, "sync ");
^~~~~~
drivers/most/core.c:197:3: note: Call to function 'strcat' 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 'strlcat'. CWE-119
strcat(buf, "sync ");
^~~~~~
drivers/most/core.c:199:3: warning: Call to function 'strcat' 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 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcat(buf, "isoc ");
^~~~~~
drivers/most/core.c:199:3: note: Call to function 'strcat' 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 'strlcat'. CWE-119
strcat(buf, "isoc ");
^~~~~~
drivers/most/core.c:200:2: warning: Call to function 'strcat' 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 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
strcat(buf, "\n");
^~~~~~
drivers/most/core.c:200:2: note: Call to function 'strcat' 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 'strlcat'. CWE-119
strcat(buf, "\n");
^~~~~~
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.
vim +/p +1534 kernel/sched/deadline.c
2dfdb3d20ad50e Yafang Shao 2021-09-05 1529
2dfdb3d20ad50e Yafang Shao 2021-09-05 1530 static inline void
2dfdb3d20ad50e Yafang Shao 2021-09-05 1531 update_stats_dequeue_dl(struct dl_rq *dl_rq, struct sched_dl_entity *dl_se,
2dfdb3d20ad50e Yafang Shao 2021-09-05 1532 int flags)
2dfdb3d20ad50e Yafang Shao 2021-09-05 1533 {
2dfdb3d20ad50e Yafang Shao 2021-09-05 @1534 struct task_struct *p = dl_task_of(dl_se);
2dfdb3d20ad50e Yafang Shao 2021-09-05 1535
2dfdb3d20ad50e Yafang Shao 2021-09-05 1536 if (!schedstat_enabled())
2dfdb3d20ad50e Yafang Shao 2021-09-05 1537 return;
2dfdb3d20ad50e Yafang Shao 2021-09-05 1538
2dfdb3d20ad50e Yafang Shao 2021-09-05 1539 if ((flags & DEQUEUE_SLEEP)) {
2dfdb3d20ad50e Yafang Shao 2021-09-05 1540 unsigned int state;
2dfdb3d20ad50e Yafang Shao 2021-09-05 1541
2dfdb3d20ad50e Yafang Shao 2021-09-05 1542 state = READ_ONCE(p->__state);
2dfdb3d20ad50e Yafang Shao 2021-09-05 1543 if (state & TASK_INTERRUPTIBLE)
2dfdb3d20ad50e Yafang Shao 2021-09-05 1544 __schedstat_set(p->stats.sleep_start,
2dfdb3d20ad50e Yafang Shao 2021-09-05 1545 rq_clock(rq_of_dl_rq(dl_rq)));
2dfdb3d20ad50e Yafang Shao 2021-09-05 1546
2dfdb3d20ad50e Yafang Shao 2021-09-05 1547 if (state & TASK_UNINTERRUPTIBLE)
2dfdb3d20ad50e Yafang Shao 2021-09-05 1548 __schedstat_set(p->stats.block_start,
2dfdb3d20ad50e Yafang Shao 2021-09-05 1549 rq_clock(rq_of_dl_rq(dl_rq)));
2dfdb3d20ad50e Yafang Shao 2021-09-05 1550 }
2dfdb3d20ad50e Yafang Shao 2021-09-05 1551 }
2dfdb3d20ad50e Yafang Shao 2021-09-05 1552
---
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: 32113 bytes --]
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2021-09-13 5:55 UTC | newest]
Thread overview: (only message) (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-09-13 5:55 [peterz-queue:sched/core 19/19] kernel/sched/deadline.c:1534:22: warning: Value stored to 'p' during its initialization is never read [clang-analyzer-deadcode.DeadStores] kernel test robot
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.