CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Thomas Bogendoerfer <[email protected]>
CC: Christoph Hellwig <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   d567f5db412ed52de0b3b3efca4a451263de6108
commit: 04324f44cb69a03fdc8f2ee52386a4fdf6a0043b MIPS: Remove get_fs/set_fs
date:   11 months ago
:::::: branch date: 22 hours ago
:::::: commit date: 11 months ago
config: mips-randconfig-c004-20220211 
(https://download.01.org/0day-ci/archive/20220215/[email protected]/config)
compiler: clang version 15.0.0 (https://github.com/llvm/llvm-project 
f6685f774697c85d6a352dcea013f46a99f9fe31)
reproduce (this is a W=1 build):
        wget 
https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O 
~/bin/make.cross
        chmod +x ~/bin/make.cross
        # install mips cross compiling tool for clang build
        # apt-get install binutils-mips-linux-gnu
        # 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=04324f44cb69a03fdc8f2ee52386a4fdf6a0043b
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 04324f44cb69a03fdc8f2ee52386a4fdf6a0043b
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=mips 
clang-analyzer 

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <[email protected]>


clang-analyzer warnings: (new ones prefixed by >>)
                                                 ^
   arch/mips/include/asm/uaccess.h:86:2: note: expanded from macro 'access_ok'
           likely(__access_ok((addr), (size)))
           ^
   include/linux/compiler.h:45:22: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ^
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^
   include/linux/compiler.h:45:39: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:33:34: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                         ^
   include/linux/uaccess.h:157:40: note: Assuming the condition is false
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                                                 ^
   arch/mips/include/asm/uaccess.h:86:2: note: expanded from macro 'access_ok'
           likely(__access_ok((addr), (size)))
           ^
   include/linux/compiler.h:45:22: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ^
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^
   include/linux/compiler.h:45:66: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
   include/linux/compiler.h:35:19: note: expanded from macro '__branch_check__'
                                                expect, is_constant);      \
                                                        ^~~~~~~~~~~
   include/linux/uaccess.h:157:2: note: Taking true branch
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
           ^
   include/linux/uaccess.h:159:9: note: Calling 'raw_copy_from_user'
                   res = raw_copy_from_user(to, from, n);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/mips/include/asm/uaccess.h:472:2: note: Returning without writing to 
'to->sin_addr.s_addr'
           return __cu_len_r;
           ^
   include/linux/uaccess.h:159:9: note: Returning from 'raw_copy_from_user'
                   res = raw_copy_from_user(to, from, n);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:161:6: note: Assuming 'res' is 0, which participates 
in a condition later
           if (unlikely(res))
               ^
   include/linux/compiler.h:48:24: note: expanded from macro 'unlikely'
   #  define unlikely(x)   (__branch_check__(x, 0, __builtin_constant_p(x)))
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^~~~
   include/linux/uaccess.h:161:2: note: Taking false branch
           if (unlikely(res))
           ^
   include/linux/uaccess.h:163:2: note: Returning without writing to 
'to->sin_addr.s_addr'
           return res;
           ^
   include/linux/uaccess.h:163:2: note: Returning zero (loaded from 'res'), 
which participates in a condition later
           return res;
           ^~~~~~~~~~
   include/linux/uaccess.h:192:7: note: Returning from '_copy_from_user'
                   n = _copy_from_user(to, from, n);
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:193:2: note: Returning without writing to 
'to->sin_addr.s_addr'
           return n;
           ^
   include/linux/uaccess.h:193:2: note: Returning zero (loaded from 'n'), which 
participates in a condition later
           return n;
           ^~~~~~~~
   include/linux/sockptr.h:48:10: note: Returning from 'copy_from_user'
                   return copy_from_user(dst, src.user + offset, size);
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:48:3: note: Returning without writing to 
'dst->sin_addr.s_addr'
                   return copy_from_user(dst, src.user + offset, size);
                   ^
   include/linux/sockptr.h:48:3: note: Returning zero, which participates in a 
condition later
                   return copy_from_user(dst, src.user + offset, size);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:55:9: note: Returning from 'copy_from_sockptr_offset'
           return copy_from_sockptr_offset(dst, src, 0, size);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:55:2: note: Returning without writing to 
'dst->sin_addr.s_addr'
           return copy_from_sockptr_offset(dst, src, 0, size);
           ^
   include/linux/sockptr.h:55:2: note: Returning zero, which participates in a 
condition later
           return copy_from_sockptr_offset(dst, src, 0, size);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/rds/af_rds.c:310:7: note: Returning from 'copy_from_sockptr'
                   if (copy_from_sockptr(&sin, optval,
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/rds/af_rds.c:310:3: note: Taking false branch
                   if (copy_from_sockptr(&sin, optval,
                   ^
   net/rds/af_rds.c:315:3: note: 1st function call argument is an uninitialized 
value
                   ipv6_addr_set_v4mapped(sin.sin_addr.s_addr, &sin6.sin6_addr);
                   ^                      ~~~~~~~~~~~~~~~~~~~
>> net/rds/af_rds.c:339:10: warning: Assigned value is garbage or undefined 
>> [clang-analyzer-core.uninitialized.Assign]
           *optvar = !!value;
                   ^
   net/rds/af_rds.c:438:6: note: Assuming 'level' is equal to SOL_RDS
           if (level != SOL_RDS) {
               ^~~~~~~~~~~~~~~~
   net/rds/af_rds.c:438:2: note: Taking false branch
           if (level != SOL_RDS) {
           ^
   net/rds/af_rds.c:443:2: note: Control jumps to 'case 5:'  at line 456
           switch (optname) {
           ^
   net/rds/af_rds.c:457:9: note: Calling 'rds_set_bool_option'
                   ret = rds_set_bool_option(&rs->rs_recverr, optval, optlen);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/rds/af_rds.c:333:2: note: 'value' declared without an initial value
           int value;
           ^~~~~~~~~
   net/rds/af_rds.c:335:6: note: Assuming the condition is false
           if (optlen < sizeof(int))
               ^~~~~~~~~~~~~~~~~~~~
   net/rds/af_rds.c:335:2: note: Taking false branch
           if (optlen < sizeof(int))
           ^
   net/rds/af_rds.c:337:6: note: Calling 'copy_from_sockptr'
           if (copy_from_sockptr(&value, optval, sizeof(int)))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:55:9: note: Calling 'copy_from_sockptr_offset'
           return copy_from_sockptr_offset(dst, src, 0, size);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:47:6: note: Assuming the condition is true
           if (!sockptr_is_kernel(src))
               ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:47:2: note: Taking true branch
           if (!sockptr_is_kernel(src))
           ^
   include/linux/sockptr.h:48:10: note: Calling 'copy_from_user'
                   return copy_from_user(dst, src.user + offset, size);
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:191:2: note: Taking true branch
           if (likely(check_copy_size(to, n, false)))
           ^
   include/linux/uaccess.h:192:7: note: Calling '_copy_from_user'
                   n = _copy_from_user(to, from, n);
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:157:7: note: Calling 'should_fail_usercopy'
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/fault-inject-usercopy.h:18:49: note: Returning zero, which 
participates in a condition later
   static inline bool should_fail_usercopy(void) { return false; }
                                                   ^~~~~~~~~~~~
   include/linux/uaccess.h:157:7: note: Returning from 'should_fail_usercopy'
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:157:6: note: Left side of '&&' is true
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
               ^
   include/linux/uaccess.h:157:40: note: Assuming the condition is false
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                                                 ^
   arch/mips/include/asm/uaccess.h:86:2: note: expanded from macro 'access_ok'
           likely(__access_ok((addr), (size)))
           ^
   include/linux/compiler.h:45:22: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ^
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^
   include/linux/compiler.h:45:39: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:33:34: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                         ^
   include/linux/uaccess.h:157:40: note: Assuming the condition is false
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                                                 ^
   arch/mips/include/asm/uaccess.h:86:2: note: expanded from macro 'access_ok'
           likely(__access_ok((addr), (size)))
           ^
   include/linux/compiler.h:45:22: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ^
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^
   include/linux/compiler.h:45:66: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
   include/linux/compiler.h:35:19: note: expanded from macro '__branch_check__'
                                                expect, is_constant);      \
                                                        ^~~~~~~~~~~
   include/linux/uaccess.h:157:2: note: Taking true branch
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
           ^
   include/linux/uaccess.h:159:9: note: Calling 'raw_copy_from_user'
                   res = raw_copy_from_user(to, from, n);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/mips/include/asm/uaccess.h:472:2: note: Returning without writing to 
'*to'
           return __cu_len_r;
--
                                                 ^
   arch/mips/include/asm/uaccess.h:86:2: note: expanded from macro 'access_ok'
           likely(__access_ok((addr), (size)))
           ^
   include/linux/compiler.h:45:22: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ^
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^
   include/linux/compiler.h:45:39: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:33:34: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                         ^
   include/linux/uaccess.h:157:40: note: Assuming the condition is false
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                                                 ^
   arch/mips/include/asm/uaccess.h:86:2: note: expanded from macro 'access_ok'
           likely(__access_ok((addr), (size)))
           ^
   include/linux/compiler.h:45:22: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ^
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^
   include/linux/compiler.h:45:66: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
   include/linux/compiler.h:35:19: note: expanded from macro '__branch_check__'
                                                expect, is_constant);      \
                                                        ^~~~~~~~~~~
   include/linux/uaccess.h:157:2: note: Taking true branch
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
           ^
   include/linux/uaccess.h:159:9: note: Calling 'raw_copy_from_user'
                   res = raw_copy_from_user(to, from, n);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/mips/include/asm/uaccess.h:472:2: note: Returning without writing to 
'*to'
           return __cu_len_r;
           ^
   include/linux/uaccess.h:159:9: note: Returning from 'raw_copy_from_user'
                   res = raw_copy_from_user(to, from, n);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:161:6: note: Assuming 'res' is 0, which participates 
in a condition later
           if (unlikely(res))
               ^
   include/linux/compiler.h:48:24: note: expanded from macro 'unlikely'
   #  define unlikely(x)   (__branch_check__(x, 0, __builtin_constant_p(x)))
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^~~~
   include/linux/uaccess.h:161:2: note: Taking false branch
           if (unlikely(res))
           ^
   include/linux/uaccess.h:163:2: note: Returning without writing to '*to'
           return res;
           ^
   include/linux/uaccess.h:163:2: note: Returning zero (loaded from 'res'), 
which participates in a condition later
           return res;
           ^~~~~~~~~~
   include/linux/uaccess.h:192:7: note: Returning from '_copy_from_user'
                   n = _copy_from_user(to, from, n);
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:193:2: note: Returning without writing to '*to'
           return n;
           ^
   include/linux/uaccess.h:193:2: note: Returning zero (loaded from 'n'), which 
participates in a condition later
           return n;
           ^~~~~~~~
   include/linux/sockptr.h:48:10: note: Returning from 'copy_from_user'
                   return copy_from_user(dst, src.user + offset, size);
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:48:3: note: Returning without writing to '*dst'
                   return copy_from_user(dst, src.user + offset, size);
                   ^
   include/linux/sockptr.h:48:3: note: Returning zero, which participates in a 
condition later
                   return copy_from_user(dst, src.user + offset, size);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:55:9: note: Returning from 'copy_from_sockptr_offset'
           return copy_from_sockptr_offset(dst, src, 0, size);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:55:2: note: Returning without writing to '*dst'
           return copy_from_sockptr_offset(dst, src, 0, size);
           ^
   include/linux/sockptr.h:55:2: note: Returning zero, which participates in a 
condition later
           return copy_from_sockptr_offset(dst, src, 0, size);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/rds/af_rds.c:370:6: note: Returning from 'copy_from_sockptr'
           if (copy_from_sockptr(&t_type, optval, sizeof(t_type)))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/rds/af_rds.c:370:2: note: Taking false branch
           if (copy_from_sockptr(&t_type, optval, sizeof(t_type)))
           ^
   net/rds/af_rds.c:373:13: note: The left operand of '<' is a garbage value
           if (t_type < 0 || t_type >= RDS_TRANS_COUNT)
               ~~~~~~ ^
>> net/rds/af_rds.c:392:12: warning: Branch condition evaluates to a garbage 
>> value [clang-analyzer-core.uninitialized.Branch]
           valbool = val ? 1 : 0;
                     ^
   net/rds/af_rds.c:438:6: note: Assuming 'level' is equal to SOL_RDS
           if (level != SOL_RDS) {
               ^~~~~~~~~~~~~~~~
   net/rds/af_rds.c:438:2: note: Taking false branch
           if (level != SOL_RDS) {
           ^
   net/rds/af_rds.c:443:2: note: Control jumps to 'case 29:'  at line 467
           switch (optname) {
           ^
   net/rds/af_rds.c:470:9: note: Calling 'rds_enable_recvtstamp'
                   ret = rds_enable_recvtstamp(sock->sk, optval, optlen, 
optname);
                         
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/rds/af_rds.c:384:6: note: 'val' declared without an initial value
           int val, valbool;
               ^~~
   net/rds/af_rds.c:386:6: note: Assuming the condition is false
           if (optlen != sizeof(int))
               ^~~~~~~~~~~~~~~~~~~~~
   net/rds/af_rds.c:386:2: note: Taking false branch
           if (optlen != sizeof(int))
           ^
   net/rds/af_rds.c:389:6: note: Calling 'copy_from_sockptr'
           if (copy_from_sockptr(&val, optval, sizeof(int)))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:55:9: note: Calling 'copy_from_sockptr_offset'
           return copy_from_sockptr_offset(dst, src, 0, size);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:47:6: note: Assuming the condition is true
           if (!sockptr_is_kernel(src))
               ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:47:2: note: Taking true branch
           if (!sockptr_is_kernel(src))
           ^
   include/linux/sockptr.h:48:10: note: Calling 'copy_from_user'
                   return copy_from_user(dst, src.user + offset, size);
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:191:2: note: Taking true branch
           if (likely(check_copy_size(to, n, false)))
           ^
   include/linux/uaccess.h:192:7: note: Calling '_copy_from_user'
                   n = _copy_from_user(to, from, n);
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:157:7: note: Calling 'should_fail_usercopy'
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/fault-inject-usercopy.h:18:49: note: Returning zero, which 
participates in a condition later
   static inline bool should_fail_usercopy(void) { return false; }
                                                   ^~~~~~~~~~~~
   include/linux/uaccess.h:157:7: note: Returning from 'should_fail_usercopy'
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:157:6: note: Left side of '&&' is true
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
               ^
   include/linux/uaccess.h:157:40: note: Assuming the condition is false
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                                                 ^
   arch/mips/include/asm/uaccess.h:86:2: note: expanded from macro 'access_ok'
           likely(__access_ok((addr), (size)))
           ^
   include/linux/compiler.h:45:22: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ^
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^
   include/linux/compiler.h:45:39: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:33:34: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                         ^
   include/linux/uaccess.h:157:40: note: Assuming the condition is false
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                                                 ^
   arch/mips/include/asm/uaccess.h:86:2: note: expanded from macro 'access_ok'
           likely(__access_ok((addr), (size)))
           ^
   include/linux/compiler.h:45:22: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ^
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^
   include/linux/compiler.h:45:66: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
   include/linux/compiler.h:35:19: note: expanded from macro '__branch_check__'
                                                expect, is_constant);      \
                                                        ^~~~~~~~~~~
   include/linux/uaccess.h:157:2: note: Taking true branch
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
           ^
   include/linux/uaccess.h:159:9: note: Calling 'raw_copy_from_user'
                   res = raw_copy_from_user(to, from, n);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/mips/include/asm/uaccess.h:472:2: note: Returning without writing to 
'*to'
           return __cu_len_r;
--
   drivers/base/test/test_async_driver_probe.c:131:6: note: Assuming 'err' is 0
           if (err) {
               ^~~
   drivers/base/test/test_async_driver_probe.c:131:2: note: Taking false branch
           if (err) {
           ^
   drivers/base/test/test_async_driver_probe.c:139:6: note: Assuming the 
condition is false
           if (duration > TEST_PROBE_THRESHOLD) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/base/test/test_async_driver_probe.c:139:2: note: Taking false branch
           if (duration > TEST_PROBE_THRESHOLD) {
           ^
   drivers/base/test/test_async_driver_probe.c:147:2: note: Assuming 'cpu' is 
>= 'nr_cpu_ids'
           for_each_online_cpu(cpu) {
           ^
   include/linux/cpumask.h:818:36: note: expanded from macro 
'for_each_online_cpu'
   #define for_each_online_cpu(cpu)   for_each_cpu((cpu), cpu_online_mask)
                                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/cpumask.h:272:3: note: expanded from macro 'for_each_cpu'
                   (cpu) < nr_cpu_ids;)
                   ^~~~~~~~~~~~~~~~~~
   drivers/base/test/test_async_driver_probe.c:147:2: note: Loop condition is 
false. Execution continues on line 164
           for_each_online_cpu(cpu) {
           ^
   include/linux/cpumask.h:818:36: note: expanded from macro 
'for_each_online_cpu'
   #define for_each_online_cpu(cpu)   for_each_cpu((cpu), cpu_online_mask)
                                      ^
   include/linux/cpumask.h:270:2: note: expanded from macro 'for_each_cpu'
           for ((cpu) = -1;                                \
           ^
   drivers/base/test/test_async_driver_probe.c:166:12: note: Dereference of 
null pointer (loaded from variable 'pdev')
           dev_info(&(*pdev)->dev,
                     ^
   include/linux/dev_printk.h:118:12: note: expanded from macro 'dev_info'
           _dev_info(dev, dev_fmt(fmt), ##__VA_ARGS__)
                     ^~~
   drivers/base/test/test_async_driver_probe.c:177:2: warning: Value stored to 
'nid' is never read [clang-analyzer-deadcode.DeadStores]
           nid = cpu_to_node(cpu);
           ^
   drivers/base/test/test_async_driver_probe.c:177:2: note: Value stored to 
'nid' is never read
   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.
   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.
   4 warnings generated.
   kernel/crash_core.c:241:14: warning: Dereference of null pointer (loaded 
from variable 'crash_base') [clang-analyzer-core.NullDereference]
           *crash_base = 0;
                       ^
   kernel/crash_core.c:293:62: note: Passing value via 4th parameter 
'crash_base'
           return __parse_crashkernel(cmdline, system_ram, crash_size, 
crash_base,
                                                                       
^~~~~~~~~~
   kernel/crash_core.c:293:9: note: Calling '__parse_crashkernel'
           return __parse_crashkernel(cmdline, system_ram, crash_size, 
crash_base,
                  
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   kernel/crash_core.c:239:9: note: Assuming 'crash_size' is non-null
           BUG_ON(!crash_size || !crash_base);
                  ^
   arch/mips/include/asm/bug.h:34:44: note: expanded from macro 'BUG_ON'
   #define BUG_ON(C) __BUG_ON((unsigned long)(C))
                                              ^
   kernel/crash_core.c:239:9: note: Left side of '||' is false
           BUG_ON(!crash_size || !crash_base);
                  ^
   kernel/crash_core.c:239:24: note: Assuming 'crash_base' is null
           BUG_ON(!crash_size || !crash_base);
                                 ^
   arch/mips/include/asm/bug.h:34:44: note: expanded from macro 'BUG_ON'
   #define BUG_ON(C) __BUG_ON((unsigned long)(C))
                                              ^
   kernel/crash_core.c:241:14: note: Dereference of null pointer (loaded from 
variable 'crash_base')
           *crash_base = 0;
            ~~~~~~~~~~ ^
   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.
   9 warnings generated.
   Suppressed 9 warnings (9 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.
   4 warnings generated.
   kernel/cgroup/cgroup-v1.c:1085: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(root->release_agent_path, ctx->release_agent);
                   ^~~~~~
   kernel/cgroup/cgroup-v1.c:1085: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(root->release_agent_path, ctx->release_agent);
                   ^~~~~~
   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.
   10 warnings generated.
   net/ipv4/udp.c:728:2: warning: Value stored to 'err' is never read 
[clang-analyzer-deadcode.DeadStores]
           err = 0;
           ^     ~
   net/ipv4/udp.c:728:2: note: Value stored to 'err' is never read
           err = 0;
           ^     ~
>> net/ipv4/udp.c:2611:12: warning: Branch condition evaluates to a garbage 
>> value [clang-analyzer-core.uninitialized.Branch]
           valbool = val ? 1 : 0;
                     ^
   net/ipv4/udp.c:2715:6: note: Assuming 'level' is equal to SOL_UDP
           if (level == SOL_UDP  ||  level == SOL_UDPLITE)
               ^~~~~~~~~~~~~~~~
   net/ipv4/udp.c:2715:24: note: Left side of '||' is true
           if (level == SOL_UDP  ||  level == SOL_UDPLITE)
                                 ^
   net/ipv4/udp.c:2716:10: note: Calling 'udp_lib_setsockopt'
                   return udp_lib_setsockopt(sk, level, optname,
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv4/udp.c:2601:6: note: 'val' declared without an initial value
           int val, valbool;
               ^~~
   net/ipv4/udp.c:2603:30: note: Assuming field 'sk_protocol' is equal to 
IPPROTO_UDPLITE
           int is_udplite = IS_UDPLITE(sk);
                                       ^
   include/linux/udp.h:144:27: note: expanded from macro 'IS_UDPLITE'
   #define IS_UDPLITE(__sk) (__sk->sk_protocol == IPPROTO_UDPLITE)
                             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv4/udp.c:2605:6: note: Assuming the condition is false
           if (optlen < sizeof(int))
               ^~~~~~~~~~~~~~~~~~~~
   net/ipv4/udp.c:2605:2: note: Taking false branch
           if (optlen < sizeof(int))
           ^
   net/ipv4/udp.c:2608:6: note: Calling 'copy_from_sockptr'
           if (copy_from_sockptr(&val, optval, sizeof(val)))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:55:9: note: Calling 'copy_from_sockptr_offset'
           return copy_from_sockptr_offset(dst, src, 0, size);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:47:6: note: Assuming the condition is true
           if (!sockptr_is_kernel(src))
               ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:47:2: note: Taking true branch
           if (!sockptr_is_kernel(src))
           ^
   include/linux/sockptr.h:48:10: note: Calling 'copy_from_user'
                   return copy_from_user(dst, src.user + offset, size);
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:191:6: note: Assuming the condition is false
           if (likely(check_copy_size(to, n, false)))
               ^
   include/linux/compiler.h:45:22: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^~~~
   include/linux/uaccess.h:191:2: note: Taking true branch
           if (likely(check_copy_size(to, n, false)))
           ^
   include/linux/uaccess.h:192:7: note: Calling '_copy_from_user'
                   n = _copy_from_user(to, from, n);
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:157:7: note: Calling 'should_fail_usercopy'
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/fault-inject-usercopy.h:18:49: note: Returning zero, which 
participates in a condition later
   static inline bool should_fail_usercopy(void) { return false; }
                                                   ^~~~~~~~~~~~
   include/linux/uaccess.h:157:7: note: Returning from 'should_fail_usercopy'
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:157:6: note: Left side of '&&' is true
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
               ^
   include/linux/uaccess.h:157:40: note: Assuming the condition is false
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                                                 ^
   arch/mips/include/asm/uaccess.h:86:2: note: expanded from macro 'access_ok'
           likely(__access_ok((addr), (size)))
           ^
   include/linux/compiler.h:45:22: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ^
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^
   include/linux/compiler.h:45:39: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:33:34: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                         ^
   include/linux/uaccess.h:157:40: note: Assuming the condition is false
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                                                 ^
   arch/mips/include/asm/uaccess.h:86:2: note: expanded from macro 'access_ok'
           likely(__access_ok((addr), (size)))
           ^
   include/linux/compiler.h:45:22: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ^
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^
   include/linux/compiler.h:45:66: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
--
   include/linux/skbuff.h:2518:9: note: Access to field 'head' results in a 
dereference of a null pointer (loaded from variable 'skb')
           return skb->head + skb->transport_header;
                  ^~~
   include/net/sock.h:2515:13: warning: Dereference of null pointer (loaded 
from variable 'tx_flags') [clang-analyzer-core.NullDereference]
                   *tx_flags |= SKBTX_WIFI_STATUS;
                             ^
   net/ipv6/raw.c:631:6: note: Assuming 'length' is <= field 'mtu'
           if (length > rt->dst.dev->mtu) {
               ^~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv6/raw.c:631:2: note: Taking false branch
           if (length > rt->dst.dev->mtu) {
           ^
   net/ipv6/raw.c:635:6: note: Assuming the condition is false
           if (length < sizeof(struct ipv6hdr))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv6/raw.c:635:2: note: Taking false branch
           if (length < sizeof(struct ipv6hdr))
           ^
   net/ipv6/raw.c:637:6: note: Assuming the condition is false
           if (flags&MSG_PROBE)
               ^~~~~~~~~~~~~~~
   net/ipv6/raw.c:637:2: note: Taking false branch
           if (flags&MSG_PROBE)
           ^
   net/ipv6/raw.c:643:6: note: Assuming 'skb' is non-null
           if (!skb)
               ^~~~
   net/ipv6/raw.c:643:2: note: Taking false branch
           if (!skb)
           ^
   net/ipv6/raw.c:645:2: note: Calling 'skb_reserve'
           skb_reserve(skb, hlen);
           ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/skbuff.h:2400:1: note: Returning without writing to 'skb->end'
   }
   ^
   net/ipv6/raw.c:645:2: note: Returning from 'skb_reserve'
           skb_reserve(skb, hlen);
           ^~~~~~~~~~~~~~~~~~~~~~
   net/ipv6/raw.c:652:2: note: Value assigned to field 'end'
           skb_put(skb, length);
           ^~~~~~~~~~~~~~~~~~~~
   net/ipv6/raw.c:653:2: note: Calling 'skb_reset_network_header'
           skb_reset_network_header(skb);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/skbuff.h:2541:1: note: Returning without writing to 'skb->end'
   }
   ^
   net/ipv6/raw.c:653:2: note: Returning from 'skb_reset_network_header'
           skb_reset_network_header(skb);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv6/raw.c:658:2: note: Calling 'skb_setup_tx_timestamp'
           skb_setup_tx_timestamp(skb, sockc->tsflags);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/sock.h:2526:39: note: Passing value via 3rd parameter 'tx_flags'
           _sock_tx_timestamp(skb->sk, tsflags, &skb_shinfo(skb)->tx_flags,
                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/sock.h:2526:2: note: Calling '_sock_tx_timestamp'
           _sock_tx_timestamp(skb->sk, tsflags, &skb_shinfo(skb)->tx_flags,
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/sock.h:2508:6: note: Assuming 'tsflags' is not equal to 0
           if (unlikely(tsflags)) {
               ^
   include/linux/compiler.h:48:24: note: expanded from macro 'unlikely'
   #  define unlikely(x)   (__branch_check__(x, 0, __builtin_constant_p(x)))
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^~~~
   include/net/sock.h:2508:2: note: Taking true branch
           if (unlikely(tsflags)) {
           ^
   include/net/sock.h:2510:7: note: Assuming the condition is true
                   if (tsflags & SOF_TIMESTAMPING_OPT_ID && tskey &&
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/sock.h:2510:7: note: Left side of '&&' is true
   include/net/sock.h:2510:44: note: Assuming 'tskey' is null
                   if (tsflags & SOF_TIMESTAMPING_OPT_ID && tskey &&
                                                            ^~~~~
   include/net/sock.h:2510:7: note: Assuming pointer value is null
                   if (tsflags & SOF_TIMESTAMPING_OPT_ID && tskey &&
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/net/sock.h:2510:50: note: Left side of '&&' is false
                   if (tsflags & SOF_TIMESTAMPING_OPT_ID && tskey &&
                                                                  ^
   include/net/sock.h:2514:6: note: Assuming the condition is false
           if (unlikely(sock_flag(sk, SOCK_WIFI_STATUS)))
               ^
   include/linux/compiler.h:48:24: note: expanded from macro 'unlikely'
   #  define unlikely(x)   (__branch_check__(x, 0, __builtin_constant_p(x)))
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^~~~
   include/net/sock.h:2514:2: note: Taking true branch
           if (unlikely(sock_flag(sk, SOCK_WIFI_STATUS)))
           ^
   include/net/sock.h:2515:13: note: Dereference of null pointer (loaded from 
variable 'tx_flags')
                   *tx_flags |= SKBTX_WIFI_STATUS;
                    ~~~~~~~~ ^
>> net/ipv6/raw.c:1030:24: warning: Assigned value is garbage or undefined 
>> [clang-analyzer-core.uninitialized.Assign]
                   inet_sk(sk)->hdrincl = !!val;
                                        ^
   net/ipv6/raw.c:1067:2: note: Control jumps to 'case 255:'  at line 1068
           switch (level) {
           ^
   net/ipv6/raw.c:1069:3: note:  Execution continues on line 1084
                   break;
                   ^
   net/ipv6/raw.c:1084:9: note: Calling 'do_rawv6_setsockopt'
           return do_rawv6_setsockopt(sk, level, optname, optval, optlen);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/ipv6/raw.c:1021:2: note: 'val' declared without an initial value
           int val;
           ^~~~~~~
   net/ipv6/raw.c:1023:6: note: Calling 'copy_from_sockptr'
           if (copy_from_sockptr(&val, optval, sizeof(val)))
               ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:55:9: note: Calling 'copy_from_sockptr_offset'
           return copy_from_sockptr_offset(dst, src, 0, size);
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:47:6: note: Assuming the condition is true
           if (!sockptr_is_kernel(src))
               ^~~~~~~~~~~~~~~~~~~~~~~
   include/linux/sockptr.h:47:2: note: Taking true branch
           if (!sockptr_is_kernel(src))
           ^
   include/linux/sockptr.h:48:10: note: Calling 'copy_from_user'
                   return copy_from_user(dst, src.user + offset, size);
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:191:2: note: Taking true branch
           if (likely(check_copy_size(to, n, false)))
           ^
   include/linux/uaccess.h:192:7: note: Calling '_copy_from_user'
                   n = _copy_from_user(to, from, n);
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:157:7: note: Calling 'should_fail_usercopy'
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/fault-inject-usercopy.h:18:49: note: Returning zero, which 
participates in a condition later
   static inline bool should_fail_usercopy(void) { return false; }
                                                   ^~~~~~~~~~~~
   include/linux/uaccess.h:157:7: note: Returning from 'should_fail_usercopy'
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:157:6: note: Left side of '&&' is true
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
               ^
   include/linux/uaccess.h:157:40: note: Assuming the condition is false
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                                                 ^
   arch/mips/include/asm/uaccess.h:86:2: note: expanded from macro 'access_ok'
           likely(__access_ok((addr), (size)))
           ^
   include/linux/compiler.h:45:22: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ^
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^
   include/linux/compiler.h:45:39: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ~~~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/compiler.h:33:34: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                         ^
   include/linux/uaccess.h:157:40: note: Assuming the condition is false
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
                                                 ^
   arch/mips/include/asm/uaccess.h:86:2: note: expanded from macro 'access_ok'
           likely(__access_ok((addr), (size)))
           ^
   include/linux/compiler.h:45:22: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ^
   include/linux/compiler.h:33:32: note: expanded from macro '__branch_check__'
                           ______r = __builtin_expect(!!(x), expect);      \
                                                       ^
   include/linux/compiler.h:45:66: note: expanded from macro 'likely'
   #  define likely(x)     (__branch_check__(x, 1, __builtin_constant_p(x)))
                            ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
   include/linux/compiler.h:35:19: note: expanded from macro '__branch_check__'
                                                expect, is_constant);      \
                                                        ^~~~~~~~~~~
   include/linux/uaccess.h:157:2: note: Taking true branch
           if (!should_fail_usercopy() && likely(access_ok(from, n))) {
           ^
   include/linux/uaccess.h:159:9: note: Calling 'raw_copy_from_user'
                   res = raw_copy_from_user(to, from, n);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   arch/mips/include/asm/uaccess.h:472:2: note: Returning without writing to 
'*to'
           return __cu_len_r;
           ^
   include/linux/uaccess.h:159:9: note: Returning from 'raw_copy_from_user'
                   res = raw_copy_from_user(to, from, n);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:161:6: note: Assuming 'res' is 0, which participates 
in a condition later
           if (unlikely(res))
               ^
   include/linux/compiler.h:48:24: note: expanded from macro 'unlikely'
   #  define unlikely(x)   (__branch_check__(x, 0, __builtin_constant_p(x)))

vim +339 net/rds/af_rds.c

639b321b4d8f4e Andy Grover                  2009-02-24  329  
a7b75c5a8c4144 Christoph Hellwig            2020-07-23  330  static int 
rds_set_bool_option(unsigned char *optvar, sockptr_t optval,
639b321b4d8f4e Andy Grover                  2009-02-24  331                     
       int optlen)
639b321b4d8f4e Andy Grover                  2009-02-24  332  {
639b321b4d8f4e Andy Grover                  2009-02-24  333     int value;
639b321b4d8f4e Andy Grover                  2009-02-24  334  
639b321b4d8f4e Andy Grover                  2009-02-24  335     if (optlen < 
sizeof(int))
639b321b4d8f4e Andy Grover                  2009-02-24  336             return 
-EINVAL;
a7b75c5a8c4144 Christoph Hellwig            2020-07-23  337     if 
(copy_from_sockptr(&value, optval, sizeof(int)))
639b321b4d8f4e Andy Grover                  2009-02-24  338             return 
-EFAULT;
639b321b4d8f4e Andy Grover                  2009-02-24 @339     *optvar = 
!!value;
639b321b4d8f4e Andy Grover                  2009-02-24  340     return 0;
639b321b4d8f4e Andy Grover                  2009-02-24  341  }
639b321b4d8f4e Andy Grover                  2009-02-24  342  
a7b75c5a8c4144 Christoph Hellwig            2020-07-23  343  static int 
rds_cong_monitor(struct rds_sock *rs, sockptr_t optval, int optlen)
639b321b4d8f4e Andy Grover                  2009-02-24  344  {
639b321b4d8f4e Andy Grover                  2009-02-24  345     int ret;
639b321b4d8f4e Andy Grover                  2009-02-24  346  
639b321b4d8f4e Andy Grover                  2009-02-24  347     ret = 
rds_set_bool_option(&rs->rs_cong_monitor, optval, optlen);
639b321b4d8f4e Andy Grover                  2009-02-24  348     if (ret == 0) {
639b321b4d8f4e Andy Grover                  2009-02-24  349             if 
(rs->rs_cong_monitor) {
639b321b4d8f4e Andy Grover                  2009-02-24  350                     
rds_cong_add_socket(rs);
639b321b4d8f4e Andy Grover                  2009-02-24  351             } else {
639b321b4d8f4e Andy Grover                  2009-02-24  352                     
rds_cong_remove_socket(rs);
639b321b4d8f4e Andy Grover                  2009-02-24  353                     
rs->rs_cong_mask = 0;
639b321b4d8f4e Andy Grover                  2009-02-24  354                     
rs->rs_cong_notify = 0;
639b321b4d8f4e Andy Grover                  2009-02-24  355             }
639b321b4d8f4e Andy Grover                  2009-02-24  356     }
639b321b4d8f4e Andy Grover                  2009-02-24  357     return ret;
639b321b4d8f4e Andy Grover                  2009-02-24  358  }
639b321b4d8f4e Andy Grover                  2009-02-24  359  
a7b75c5a8c4144 Christoph Hellwig            2020-07-23  360  static int 
rds_set_transport(struct rds_sock *rs, sockptr_t optval, int optlen)
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  361  {
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  362     int t_type;
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  363  
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  364     if 
(rs->rs_transport)
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  365             return 
-EOPNOTSUPP; /* previously attached to transport */
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  366  
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  367     if (optlen != 
sizeof(int))
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  368             return 
-EINVAL;
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  369  
a7b75c5a8c4144 Christoph Hellwig            2020-07-23  370     if 
(copy_from_sockptr(&t_type, optval, sizeof(t_type)))
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  371             return 
-EFAULT;
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  372  
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  373     if (t_type < 0 
|| t_type >= RDS_TRANS_COUNT)
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  374             return 
-EINVAL;
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  375  
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  376     
rs->rs_transport = rds_trans_get(t_type);
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  377  
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  378     return 
rs->rs_transport ? 0 : -ENOPROTOOPT;
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  379  }
d97dac54bf83b2 Sowmini Varadhan             2015-05-29  380  
a7b75c5a8c4144 Christoph Hellwig            2020-07-23  381  static int 
rds_enable_recvtstamp(struct sock *sk, sockptr_t optval,
887feae36aee6c Deepa Dinamani               2019-02-02  382                     
         int optlen, int optname)
5711f8b3531763 [email protected] 2016-03-01  383  {
5711f8b3531763 [email protected] 2016-03-01  384     int val, 
valbool;
5711f8b3531763 [email protected] 2016-03-01  385  
5711f8b3531763 [email protected] 2016-03-01  386     if (optlen != 
sizeof(int))
5711f8b3531763 [email protected] 2016-03-01  387             return 
-EFAULT;
5711f8b3531763 [email protected] 2016-03-01  388  
a7b75c5a8c4144 Christoph Hellwig            2020-07-23  389     if 
(copy_from_sockptr(&val, optval, sizeof(int)))
5711f8b3531763 [email protected] 2016-03-01  390             return 
-EFAULT;
5711f8b3531763 [email protected] 2016-03-01  391  
5711f8b3531763 [email protected] 2016-03-01 @392     valbool = val ? 
1 : 0;
5711f8b3531763 [email protected] 2016-03-01  393  
887feae36aee6c Deepa Dinamani               2019-02-02  394     if (optname == 
SO_TIMESTAMP_NEW)
887feae36aee6c Deepa Dinamani               2019-02-02  395             
sock_set_flag(sk, SOCK_TSTAMP_NEW);
887feae36aee6c Deepa Dinamani               2019-02-02  396  
5711f8b3531763 [email protected] 2016-03-01  397     if (valbool)
5711f8b3531763 [email protected] 2016-03-01  398             
sock_set_flag(sk, SOCK_RCVTSTAMP);
5711f8b3531763 [email protected] 2016-03-01  399     else
5711f8b3531763 [email protected] 2016-03-01  400             
sock_reset_flag(sk, SOCK_RCVTSTAMP);
5711f8b3531763 [email protected] 2016-03-01  401  
5711f8b3531763 [email protected] 2016-03-01  402     return 0;
5711f8b3531763 [email protected] 2016-03-01  403  }
5711f8b3531763 [email protected] 2016-03-01  404  

:::::: The code at line 339 was first introduced by commit
:::::: 639b321b4d8f4e412bfbb2a4a19bfebc1e68ace4 RDS: Socket interface

:::::: TO: Andy Grover <[email protected]>
:::::: CC: David S. Miller <[email protected]>

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/[email protected]
_______________________________________________
kbuild mailing list -- [email protected]
To unsubscribe send an email to [email protected]

Reply via email to