CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Peter Zijlstra <[email protected]>
CC: Valentin Schneider <[email protected]>
CC: Daniel Bristot de Oliveira <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   0513e464f9007b70b96740271a948ca5ab6e7dd7
commit: 565790d28b1e33ee2f77bad5348b99f6dfc366fd sched: Fix balance_callback()
date:   11 months ago
:::::: branch date: 19 hours ago
:::::: commit date: 11 months ago
config: x86_64-randconfig-c007-20210927 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
dc6e8dfdfe7efecfda318d43a06fae18b40eb498)
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=565790d28b1e33ee2f77bad5348b99f6dfc366fd
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 565790d28b1e33ee2f77bad5348b99f6dfc366fd
        # save the attached .config 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 <[email protected]>


clang-analyzer warnings: (new ones prefixed by >>)
                   ^
   crypto/skcipher.c:359:11: note: Calling 'skcipher_walk_done'
                           return skcipher_walk_done(walk, -EINVAL);
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   crypto/skcipher.c:109:6: note: Assuming 'n' is not equal to 0
           if (!n)
               ^~
   crypto/skcipher.c:109:2: note: Taking false branch
           if (!n)
           ^
   crypto/skcipher.c:112:2: note: Taking false branch
           if (likely(err >= 0)) {
           ^
   crypto/skcipher.c:117:13: note: Assuming the condition is false
           if (likely(!(walk->flags & (SKCIPHER_WALK_PHYS |
                      ^
   include/linux/compiler.h:77:40: note: expanded from macro 'likely'
   # define likely(x)      __builtin_expect(!!(x), 1)
                                               ^
   crypto/skcipher.c:117:2: note: Taking false branch
           if (likely(!(walk->flags & (SKCIPHER_WALK_PHYS |
           ^
   crypto/skcipher.c:123:13: note: Assuming the condition is false
           } else if (walk->flags & SKCIPHER_WALK_DIFF) {
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   crypto/skcipher.c:123:9: note: Taking false branch
           } else if (walk->flags & SKCIPHER_WALK_DIFF) {
                  ^
   crypto/skcipher.c:126:13: note: Assuming the condition is true
           } else if (walk->flags & SKCIPHER_WALK_COPY) {
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   crypto/skcipher.c:126:9: note: Taking true branch
           } else if (walk->flags & SKCIPHER_WALK_COPY) {
                  ^
   crypto/skcipher.c:127:3: note: Calling 'skcipher_map_dst'
                   skcipher_map_dst(walk);
                   ^~~~~~~~~~~~~~~~~~~~~~
   crypto/skcipher.c:66:1: note: Returning without writing to 'walk->page'
   }
   ^
   crypto/skcipher.c:127:3: note: Returning from 'skcipher_map_dst'
                   skcipher_map_dst(walk);
                   ^~~~~~~~~~~~~~~~~~~~~~
   crypto/skcipher.c:128:3: note: Null pointer passed as 2nd argument to memory 
copy function
                   memcpy(walk->dst.virt.addr, walk->page, n);
                   ^                           ~~~~~~~~~~
   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.
   fs/hfsplus/xattr_security.c:52:3: 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(xattr_name, XATTR_SECURITY_PREFIX);
                   ^~~~~~
   fs/hfsplus/xattr_security.c:52:3: 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(xattr_name, XATTR_SECURITY_PREFIX);
                   ^~~~~~
   fs/hfsplus/xattr_security.c:53:3: 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(xattr_name +
                   ^~~~~~
   fs/hfsplus/xattr_security.c:53:3: 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(xattr_name +
                   ^~~~~~
   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.
   4 warnings generated.
   crypto/algboss.c:196:6: warning: Value stored to 'type' during its 
initialization is never read [clang-analyzer-deadcode.DeadStores]
           u32 type = param->type;
               ^~~~   ~~~~~~~~~~~
   crypto/algboss.c:196:6: note: Value stored to 'type' during its 
initialization is never read
           u32 type = param->type;
               ^~~~   ~~~~~~~~~~~
   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.
   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.
   14 warnings generated.
>> kernel/sched/core.c:3736:2: warning: Value stored to 'rq' is never read 
>> [clang-analyzer-deadcode.DeadStores]
           rq = finish_task_switch(prev);
           ^    ~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/sched/core.c:3736:2: note: Value stored to 'rq' is never read
           rq = finish_task_switch(prev);
           ^    ~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/sched/core.c:4269:16: warning: Value stored to 'preempt_disable_ip' 
during its initialization is never read [clang-analyzer-deadcode.DeadStores]
           unsigned long preempt_disable_ip = get_preempt_disable_ip(current);
                         ^~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/sched/core.c:4269:16: note: Value stored to 'preempt_disable_ip' 
during its initialization is never read
           unsigned long preempt_disable_ip = get_preempt_disable_ip(current);
                         ^~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/sched/core.c:4549:3: warning: Value stored to 'rq' is never read 
[clang-analyzer-deadcode.DeadStores]
                   rq = context_switch(rq, prev, next, &rf);
                   ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/sched/core.c:4549:3: note: Value stored to 'rq' is never read
                   rq = context_switch(rq, prev, next, &rf);
                   ^    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/sched/core.c:7128:3: warning: Value stored to 'ptr' is never read 
[clang-analyzer-deadcode.DeadStores]
                   ptr += nr_cpu_ids * sizeof(void **);
                   ^
   kernel/sched/core.c:7128:3: note: Value stored to 'ptr' is never read
   kernel/sched/core.c:7309:2: warning: Value stored to 'preempt_disable_ip' is 
never read [clang-analyzer-deadcode.DeadStores]
           preempt_disable_ip = get_preempt_disable_ip(current);
           ^                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/sched/core.c:7309:2: note: Value stored to 'preempt_disable_ip' is 
never read
           preempt_disable_ip = get_preempt_disable_ip(current);
           ^                    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 9 warnings (5 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.
   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.
   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.
   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.
   13 warnings generated.
   mm/debug_vm_pgtable.c:80:8: warning: Value stored to 'pte' during its 
initialization is never read [clang-analyzer-deadcode.DeadStores]
           pte_t pte = pfn_pte(pfn, prot);
                 ^~~   ~~~~~~~~~~~~~~~~~~
   mm/debug_vm_pgtable.c:80:8: note: Value stored to 'pte' during its 
initialization is never read
           pte_t pte = pfn_pte(pfn, prot);
                 ^~~   ~~~~~~~~~~~~~~~~~~
   mm/debug_vm_pgtable.c:121:8: warning: Value stored to 'pte' during its 
initialization is never read [clang-analyzer-deadcode.DeadStores]
           pte_t pte = pfn_pte(pfn, prot);
                 ^~~   ~~~~~~~~~~~~~~~~~~
   mm/debug_vm_pgtable.c:121:8: note: Value stored to 'pte' during its 
initialization is never read
           pte_t pte = pfn_pte(pfn, prot);
                 ^~~   ~~~~~~~~~~~~~~~~~~
   mm/debug_vm_pgtable.c:159:8: warning: Value stored to 'pmd' during its 
initialization is never read [clang-analyzer-deadcode.DeadStores]
           pmd_t pmd = pfn_pmd(pfn, prot);
                 ^~~   ~~~~~~~~~~~~~~~~~~
   mm/debug_vm_pgtable.c:159:8: note: Value stored to 'pmd' during its 
initialization is never read
           pmd_t pmd = pfn_pmd(pfn, prot);
                 ^~~   ~~~~~~~~~~~~~~~~~~
   mm/debug_vm_pgtable.c:201:2: warning: Value stored to 'pgtable' is never 
read [clang-analyzer-deadcode.DeadStores]
           pgtable = pgtable_trans_huge_withdraw(mm, pmdp);
           ^         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   mm/debug_vm_pgtable.c:201:2: note: Value stored to 'pgtable' is never read
           pgtable = pgtable_trans_huge_withdraw(mm, pmdp);
           ^         ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   mm/debug_vm_pgtable.c:241:8: warning: Value stored to 'pmd' during its 
initialization is never read [clang-analyzer-deadcode.DeadStores]
           pmd_t pmd = pfn_pmd(pfn, prot);
                 ^~~   ~~~~~~~~~~~~~~~~~~
   mm/debug_vm_pgtable.c:241:8: note: Value stored to 'pmd' during its 
initialization is never read
           pmd_t pmd = pfn_pmd(pfn, prot);
                 ^~~   ~~~~~~~~~~~~~~~~~~
   mm/debug_vm_pgtable.c:599:8: warning: Value stored to 'pte' during its 
initialization is never read [clang-analyzer-deadcode.DeadStores]
           pte_t pte = pfn_pte(pfn, prot);
                 ^~~   ~~~~~~~~~~~~~~~~~~
   mm/debug_vm_pgtable.c:599:8: note: Value stored to 'pte' during its 
initialization is never read
           pte_t pte = pfn_pte(pfn, prot);
                 ^~~   ~~~~~~~~~~~~~~~~~~
   mm/debug_vm_pgtable.c:612:8: warning: Value stored to 'pmd' during its 
initialization is never read [clang-analyzer-deadcode.DeadStores]

vim +/rq +3736 kernel/sched/core.c

^1da177e4c3f41 kernel/sched.c      Linus Torvalds    2005-04-16  3717  
^1da177e4c3f41 kernel/sched.c      Linus Torvalds    2005-04-16  3718  /**
^1da177e4c3f41 kernel/sched.c      Linus Torvalds    2005-04-16  3719   * 
schedule_tail - first thing a freshly forked thread must call.
^1da177e4c3f41 kernel/sched.c      Linus Torvalds    2005-04-16  3720   * 
@prev: the thread we just switched away from.
^1da177e4c3f41 kernel/sched.c      Linus Torvalds    2005-04-16  3721   */
722a9f9299ca72 kernel/sched/core.c Andi Kleen        2014-05-02  3722  
asmlinkage __visible void schedule_tail(struct task_struct *prev)
^1da177e4c3f41 kernel/sched.c      Linus Torvalds    2005-04-16  3723   
__releases(rq->lock)
^1da177e4c3f41 kernel/sched.c      Linus Torvalds    2005-04-16  3724  {
1a43a14a5bd9c3 kernel/sched/core.c Oleg Nesterov     2014-10-08  3725   struct 
rq *rq;
da19ab510343c6 kernel/sched.c      Steven Rostedt    2009-07-29  3726  
609ca066386b2e kernel/sched/core.c Peter Zijlstra    2015-09-28  3727   /*
609ca066386b2e kernel/sched/core.c Peter Zijlstra    2015-09-28  3728    * New 
tasks start with FORK_PREEMPT_COUNT, see there and
609ca066386b2e kernel/sched/core.c Peter Zijlstra    2015-09-28  3729    * 
finish_task_switch() for details.
609ca066386b2e kernel/sched/core.c Peter Zijlstra    2015-09-28  3730    *
609ca066386b2e kernel/sched/core.c Peter Zijlstra    2015-09-28  3731    * 
finish_task_switch() will drop rq->lock() and lower preempt_count
609ca066386b2e kernel/sched/core.c Peter Zijlstra    2015-09-28  3732    * and 
the preempt_enable() will end up enabling preemption (on
609ca066386b2e kernel/sched/core.c Peter Zijlstra    2015-09-28  3733    * 
PREEMPT_COUNT kernels).
609ca066386b2e kernel/sched/core.c Peter Zijlstra    2015-09-28  3734    */
609ca066386b2e kernel/sched/core.c Peter Zijlstra    2015-09-28  3735  
dfa50b605c2a93 kernel/sched/core.c Oleg Nesterov     2014-10-09 @3736   rq = 
finish_task_switch(prev);
1a43a14a5bd9c3 kernel/sched/core.c Oleg Nesterov     2014-10-08  3737   
preempt_enable();
70b97a7f0b19cf kernel/sched.c      Ingo Molnar       2006-07-03  3738  
^1da177e4c3f41 kernel/sched.c      Linus Torvalds    2005-04-16  3739   if 
(current->set_child_tid)
b488893a390edf kernel/sched.c      Pavel Emelyanov   2007-10-18  3740           
put_user(task_pid_vnr(current), current->set_child_tid);
088fe47ce95254 kernel/sched/core.c Eric W. Biederman 2018-07-23  3741  
088fe47ce95254 kernel/sched/core.c Eric W. Biederman 2018-07-23  3742   
calculate_sigpending();
^1da177e4c3f41 kernel/sched.c      Linus Torvalds    2005-04-16  3743  }
^1da177e4c3f41 kernel/sched.c      Linus Torvalds    2005-04-16  3744  

:::::: The code at line 3736 was first introduced by commit
:::::: dfa50b605c2a933b7bb1c1d575a0da4e897e3c7d sched: Make 
finish_task_switch() return 'struct rq *'

:::::: TO: Oleg Nesterov <[email protected]>
:::::: CC: Ingo Molnar <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]

Attachment: .config.gz
Description: application/gzip

_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to