All of lore.kernel.org
 help / color / mirror / Atom feed
* [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.