CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: Kees Cook <[email protected]>
CC: Miguel Ojeda <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git 
for-next/overflow
head:   18ce9ecf54d4ad2826d3afe3b128a00d4a9a5201
commit: b45c0896242fc93c9051fe5c2381491f4d427b7e [13/25] compiler_types.h: 
Remove __compiletime_object_size()
:::::: branch date: 11 hours ago
:::::: commit date: 11 hours ago
config: riscv-randconfig-c006-20210822 (attached as .config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
a83d99c55ebb14532c414066a5aa3bdb65389965)
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/kees/linux.git/commit/?id=b45c0896242fc93c9051fe5c2381491f4d427b7e
        git remote add kees 
https://git.kernel.org/pub/scm/linux/kernel/git/kees/linux.git
        git fetch --no-tags kees for-next/overflow
        git checkout b45c0896242fc93c9051fe5c2381491f4d427b7e
        # 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 <[email protected]>


clang-analyzer warnings: (new ones prefixed by >>)
           if (ksize > in_size)
               ^~~~~
   drivers/dma-buf/dma-heap.c:164:2: note: Taking false branch
           if (ksize > in_size)
           ^
   drivers/dma-buf/dma-heap.c:167:2: note: Control jumps to 'case 3222816768:'  
at line 168
           switch (kcmd) {
           ^
   drivers/dma-buf/dma-heap.c:169:9: note: Calling 'dma_heap_ioctl_allocate'
                   ret = dma_heap_ioctl_allocate(file, kdata);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/dma-buf/dma-heap.c:101:6: note: Branch condition evaluates to a 
garbage value
           if (heap_allocation->fd)
               ^~~~~~~~~~~~~~~~~~~
   Suppressed 12 warnings (5 in non-user code, 7 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.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (4 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   2 warnings generated.
   Suppressed 2 warnings (2 in non-user code).
   Use -header-filter=.* to display errors from all non-system headers. Use 
-system-headers to display errors from system headers as well.
   4 warnings generated.
   Suppressed 4 warnings (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.
   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.
   Suppressed 13 warnings (6 in non-user code, 7 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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.
   16 warnings generated.
   drivers/regulator/qcom_spmi-regulator.c:390:8: warning: Excessive padding in 
'struct spmi_regulator_mapping' (8 padding bytes, where 0 is optimal). 
   Optimal fields order: 
   ops, 
   set_points, 
   type, 
   subtype, 
   logical_type, 
   revision_min, 
   revision_max, 
   hpm_min_load, 
   consider reordering the fields or adding explicit padding members 
[clang-analyzer-optin.performance.Padding]
   struct spmi_regulator_mapping {
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/regulator/qcom_spmi-regulator.c:390:8: note: Excessive padding in 
'struct spmi_regulator_mapping' (8 padding bytes, where 0 is optimal). Optimal 
fields order: ops, set_points, type, subtype, logical_type, revision_min, 
revision_max, hpm_min_load, consider reordering the fields or adding explicit 
padding members
   struct spmi_regulator_mapping {
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~
   drivers/regulator/qcom_spmi-regulator.c:401:8: warning: Excessive padding in 
'struct spmi_regulator_data' (12 padding bytes, where 4 is optimal). 
   Optimal fields order: 
   name, 
   supply, 
   ocp, 
   base, 
   force_type, 
   consider reordering the fields or adding explicit padding members 
[clang-analyzer-optin.performance.Padding]
   struct spmi_regulator_data {
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
   drivers/regulator/qcom_spmi-regulator.c:401:8: note: Excessive padding in 
'struct spmi_regulator_data' (12 padding bytes, where 4 is optimal). Optimal 
fields order: name, supply, ocp, base, force_type, consider reordering the 
fields or adding explicit padding members
   struct spmi_regulator_data {
   ~~~~~~~^~~~~~~~~~~~~~~~~~~~~
   drivers/regulator/qcom_spmi-regulator.c:1159:2: warning: Value stored to 
'ret' is never read [clang-analyzer-deadcode.DeadStores]
           ret = spmi_vreg_update_bits(vreg, SPMI_COMMON_REG_ENABLE,
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/regulator/qcom_spmi-regulator.c:1159:2: note: Value stored to 'ret' 
is never read
           ret = spmi_vreg_update_bits(vreg, SPMI_COMMON_REG_ENABLE,
           ^     ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 13 warnings (6 in non-user code, 7 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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 (4 in non-user code, 7 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 (4 in non-user code, 7 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.
   14 warnings generated.
>> drivers/video/fbdev/tmiofb.c:396:23: warning: The left operand of '>>' is a 
>> garbage value [clang-analyzer-core.UndefinedBinaryOperatorResult]
                   tmio_iowrite16(*cmd >> 16, par->lcr + LCR_CMDH);
                                       ^
   drivers/video/fbdev/tmiofb.c:507:2: note: Control jumps to 'case 
2086900480:'  at line 523
           switch (cmd) {
           ^
   drivers/video/fbdev/tmiofb.c:528:7: note: '?' condition is true
                   if (get_user(len, argp))
                       ^
   include/asm-generic/uaccess.h:229:2: note: expanded from macro 'get_user'
           access_ok(__p, sizeof(*ptr)) ?          \
           ^
   include/asm-generic/uaccess.h:124:31: note: expanded from macro 'access_ok'
   #define access_ok(addr, size) __access_ok((unsigned long)(addr),(size))
                                 ^
   drivers/video/fbdev/tmiofb.c:528:7: note: Control jumps to 'case 4:'  at 
line 528
                   if (get_user(len, argp))
                       ^
   include/asm-generic/uaccess.h:230:3: note: expanded from macro 'get_user'
                   __get_user((x), (__typeof__(*(ptr)) __user *)__p) :\
                   ^
   include/asm-generic/uaccess.h:189:2: note: expanded from macro '__get_user'
           switch (sizeof(*(ptr))) {                               \
           ^
   drivers/video/fbdev/tmiofb.c:528:7: note:  Execution continues on line 528
                   if (get_user(len, argp))
                       ^
   include/asm-generic/uaccess.h:230:3: note: expanded from macro 'get_user'
                   __get_user((x), (__typeof__(*(ptr)) __user *)__p) :\
                   ^
   include/asm-generic/uaccess.h:209:3: note: expanded from macro '__get_user'
                   break;                                          \
                   ^
   drivers/video/fbdev/tmiofb.c:528:3: note: Taking false branch
                   if (get_user(len, argp))
                   ^
   drivers/video/fbdev/tmiofb.c:530:7: note: Assuming the condition is false
                   if (len > ARRAY_SIZE(acc))
                       ^~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/tmiofb.c:530:3: note: Taking false branch
                   if (len > ARRAY_SIZE(acc))
                   ^
   drivers/video/fbdev/tmiofb.c:532:7: note: Calling 'copy_from_user'
                   if (copy_from_user(acc, argp + 1, sizeof(u32) * len))
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:191:13: note: Calling 'check_copy_size'
           if (likely(check_copy_size(to, n, false)))
                      ^
   include/linux/compiler.h:77:40: note: expanded from macro 'likely'
   # define likely(x)      __builtin_expect(!!(x), 1)
                                               ^
   include/linux/thread_info.h:207:15: note: Assuming 'sz' is >= 0
           if (unlikely(sz >= 0 && sz < bytes)) {
                        ^
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/thread_info.h:207:15: note: Left side of '&&' is true
           if (unlikely(sz >= 0 && sz < bytes)) {
                        ^
   include/linux/thread_info.h:207:26: note: Assuming 'sz' is < 'bytes'
           if (unlikely(sz >= 0 && sz < bytes)) {
                                   ^
   include/linux/compiler.h:78:42: note: expanded from macro 'unlikely'
   # define unlikely(x)    __builtin_expect(!!(x), 0)
                                               ^
   include/linux/thread_info.h:207:2: note: Taking true branch
           if (unlikely(sz >= 0 && sz < bytes)) {
           ^
   include/linux/thread_info.h:208:3: note: Taking true branch
                   if (!__builtin_constant_p(bytes))
                   ^
   include/linux/uaccess.h:191:13: note: Returning from 'check_copy_size'
           if (likely(check_copy_size(to, n, false)))
                      ^
   include/linux/compiler.h:77:40: note: expanded from macro 'likely'
   # define likely(x)      __builtin_expect(!!(x), 1)
                                               ^
   include/linux/uaccess.h:191:2: note: Taking false branch
           if (likely(check_copy_size(to, n, false)))
           ^
   include/linux/uaccess.h:193:2: note: Returning value (loaded from 'n'), 
which participates in a condition later
           return n;
           ^~~~~~~~
   drivers/video/fbdev/tmiofb.c:532:7: note: Returning from 'copy_from_user'
                   if (copy_from_user(acc, argp + 1, sizeof(u32) * len))
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/tmiofb.c:532:7: note: Assuming the condition is false
                   if (copy_from_user(acc, argp + 1, sizeof(u32) * len))
                       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/tmiofb.c:532:3: note: Taking false branch
                   if (copy_from_user(acc, argp + 1, sizeof(u32) * len))
                   ^
   drivers/video/fbdev/tmiofb.c:535:10: note: Calling 'tmiofb_acc_write'
                   return tmiofb_acc_write(fbi, acc, len);
                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/video/fbdev/tmiofb.c:392:6: note: Assuming 'ret' is 0
           if (ret)
               ^~~
   drivers/video/fbdev/tmiofb.c:392:2: note: Taking false branch
           if (ret)
--
               ^~~~~~~~~~~~~~~~~
   include/asm-generic/bitops/__ffs.h:35:2: note: Taking true branch
           if ((word & 0x3) == 0) {
           ^
   include/asm-generic/bitops/__ffs.h:39:6: note: Assuming the condition is true
           if ((word & 0x1) == 0)
               ^~~~~~~~~~~~~~~~~
   include/asm-generic/bitops/__ffs.h:39:2: note: Taking true branch
           if ((word & 0x1) == 0)
           ^
   include/asm-generic/bitops/__ffs.h:40:3: note: The value 63 is assigned to 
'num'
                   num += 1;
                   ^~~~~~~~
   include/asm-generic/bitops/__ffs.h:41:2: note: Returning the value 63 
(loaded from 'num')
           return num;
           ^~~~~~~~~~
   drivers/soc/mediatek/mtk-devapc.c:130:20: note: Returning from '__ffs'
           min_shift_group = __ffs(val);
                             ^~~~~~~~~~
   drivers/soc/mediatek/mtk-devapc.c:130:2: note: The value 63 is assigned to 
'min_shift_group'
           min_shift_group = __ffs(val);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/soc/mediatek/mtk-devapc.c:133:13: note: The result of the left shift 
is undefined due to shifting by '63', which is greater or equal to the width of 
type 'int'
           writel(0x1 << min_shift_group, pd_vio_shift_sel_reg);
                      ^
   arch/riscv/include/asm/mmio.h:144:48: note: expanded from macro 'writel'
   #define writel(v, c)    ({ __io_bw(); writel_cpu((v), (c)); __io_aw(); })
                                                     ^
   arch/riscv/include/asm/mmio.h:93:71: note: expanded from macro 'writel_cpu'
   #define writel_cpu(v, c)        ((void)__raw_writel((__force 
u32)cpu_to_le32(v), (c)))
                                                                                
^
   include/uapi/linux/byteorder/little_endian.h:33:51: note: expanded from 
macro '__cpu_to_le32'
   #define __cpu_to_le32(x) ((__force __le32)(__u32)(x))
                                                     ^
   Suppressed 11 warnings (4 in non-user code, 7 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.
   18 warnings generated.
   net/atm/common.c:238:2: warning: Assigned value is garbage or undefined 
[clang-analyzer-core.uninitialized.Assign]
           skb_queue_walk_safe(&queue, skb, tmp) {
           ^
   include/linux/skbuff.h:3537:33: note: expanded from macro 
'skb_queue_walk_safe'
                   for (skb = (queue)->next, tmp = skb->next;                   
   \
                                                 ^ ~~~~~~~~~
   net/atm/common.c:231:2: note: Calling '__skb_queue_head_init'
           __skb_queue_head_init(&queue);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/atm/common.c:231:2: note: Returning from '__skb_queue_head_init'
           __skb_queue_head_init(&queue);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/atm/common.c:234:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&rq->lock, flags);
           ^
   include/linux/spinlock.h:384:2: note: expanded from macro 'spin_lock_irqsave'
           raw_spin_lock_irqsave(spinlock_check(lock), flags);     \
           ^
   include/linux/spinlock.h:250:2: note: expanded from macro 
'raw_spin_lock_irqsave'
           do {                                            \
           ^
   net/atm/common.c:234:2: note: Loop condition is false.  Exiting loop
           spin_lock_irqsave(&rq->lock, flags);
           ^
   include/linux/spinlock.h:382:43: note: expanded from macro 
'spin_lock_irqsave'
   #define spin_lock_irqsave(lock, flags)                          \
                                                                   ^
   net/atm/common.c:235:2: note: Calling 'skb_queue_splice_init'
           skb_queue_splice_init(rq, &queue);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/skbuff.h:1979:6: note: Assuming the condition is false
           if (!skb_queue_empty(list)) {
               ^~~~~~~~~~~~~~~~~~~~~~
   include/linux/skbuff.h:1979:2: note: Taking false branch
           if (!skb_queue_empty(list)) {
           ^
   net/atm/common.c:235:2: note: Returning from 'skb_queue_splice_init'
           skb_queue_splice_init(rq, &queue);
           ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/atm/common.c:238:2: note: Assigned value is garbage or undefined
           skb_queue_walk_safe(&queue, skb, tmp) {
           ^
   include/linux/skbuff.h:3537:33: note: expanded from macro 
'skb_queue_walk_safe'
                   for (skb = (queue)->next, tmp = skb->next;                   
   \
                                                 ^ ~~~~~~~~~
   Suppressed 17 warnings (10 in non-user code, 7 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.
   17 warnings generated.
   Suppressed 17 warnings (10 in non-user code, 7 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.
   17 warnings generated.
   Suppressed 17 warnings (10 in non-user code, 7 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.
   20 warnings generated.
   Suppressed 20 warnings (10 in non-user code, 10 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.
   17 warnings generated.
   Suppressed 17 warnings (10 in non-user code, 7 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.
   13 warnings generated.
   Suppressed 13 warnings (6 in non-user code, 7 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.
   18 warnings generated.
>> net/atm/lec.c:693:23: warning: The left operand of '<' is a garbage value 
>> [clang-analyzer-core.UndefinedBinaryOperatorResult]
           if (ioc_data.dev_num < 0 || ioc_data.dev_num >= MAX_LEC_ITF)
                                ^
   net/atm/lec.c:996:2: note: Control jumps to 'case 25041:'  at line 999
           switch (cmd) {
           ^
   net/atm/lec.c:1000:3: note: Taking false branch
                   if (!capable(CAP_NET_ADMIN))
                   ^
   net/atm/lec.c:1002:3: note:  Execution continues on line 1007
                   break;
                   ^
   net/atm/lec.c:1007:2: note: Control jumps to 'case 25041:'  at line 1016
           switch (cmd) {
           ^
   net/atm/lec.c:1017:9: note: Calling 'lec_vcc_attach'
                   err = lec_vcc_attach(vcc, (void __user *)arg);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/atm/lec.c:690:15: note: Calling 'copy_from_user'
           bytes_left = copy_from_user(&ioc_data, arg, sizeof(struct 
atmlec_ioc));
                        
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   include/linux/uaccess.h:191:2: note: Taking false branch
           if (likely(check_copy_size(to, n, false)))
           ^
   include/linux/uaccess.h:193:2: note: Returning without writing to 
'to->dev_num'
           return n;
           ^
   net/atm/lec.c:690:15: note: Returning from 'copy_from_user'
           bytes_left = copy_from_user(&ioc_data, arg, sizeof(struct 
atmlec_ioc));
                        
^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   net/atm/lec.c:691:6: note: 'bytes_left' is not equal to 0
           if (bytes_left != 0)
               ^~~~~~~~~~
   net/atm/lec.c:691:2: note: Taking true branch
           if (bytes_left != 0)
           ^
   net/atm/lec.c:693:23: note: The left operand of '<' is a garbage value
           if (ioc_data.dev_num < 0 || ioc_data.dev_num >= MAX_LEC_ITF)
               ~~~~~~~~~~~~~~~~ ^
   Suppressed 17 warnings (10 in non-user code, 7 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.
   19 warnings generated.
   net/decnet/af_decnet.c:1765:4: warning: Value stored to 'rv' is never read 
[clang-analyzer-deadcode.DeadStores]
                           rv = -EFAULT;
                           ^    ~~~~~~~
   net/decnet/af_decnet.c:1765:4: note: Value stored to 'rv' is never read
                           rv = -EFAULT;
                           ^    ~~~~~~~
   net/decnet/af_decnet.c:1962:2: warning: Value stored to 'mss' is never read 
[clang-analyzer-deadcode.DeadStores]
           mss = scp->segsize_rem;
           ^     ~~~~~~~~~~~~~~~~
   net/decnet/af_decnet.c:1962:2: note: Value stored to 'mss' is never read
           mss = scp->segsize_rem;
           ^     ~~~~~~~~~~~~~~~~
   Suppressed 17 warnings (10 in non-user code, 7 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.
   18 warnings generated.
   net/decnet/dn_nsp_in.c:763:3: warning: Value stored to 'ptr' is never read 
[clang-analyzer-deadcode.DeadStores]
                   ptr += 2;
                   ^      ~
   net/decnet/dn_nsp_in.c:763:3: note: Value stored to 'ptr' is never read
                   ptr += 2;
                   ^      ~
   Suppressed 17 warnings (10 in non-user code, 7 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.
   17 warnings generated.
   Suppressed 17 warnings (10 in non-user code, 7 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.
   21 warnings generated.
   net/decnet/dn_route.c:827:20: warning: Value stored to 'cb' during its 
initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct dn_skb_cb *cb = DN_SKB_CB(skb);
                             ^~
   net/decnet/dn_route.c:827:20: note: Value stored to 'cb' during its 
initialization is never read
           struct dn_skb_cb *cb = DN_SKB_CB(skb);
                             ^~
   net/decnet/dn_route.c:839:20: warning: Value stored to 'cb' during its 
initialization is never read [clang-analyzer-deadcode.DeadStores]
           struct dn_skb_cb *cb = DN_SKB_CB(skb);
                             ^~
   net/decnet/dn_route.c:839:20: note: Value stored to 'cb' during its 
initialization is never read
           struct dn_skb_cb *cb = DN_SKB_CB(skb);
                             ^~
   net/decnet/dn_route.c:890:39: warning: Access to field 'mtu' results in a 
dereference of a null pointer (loaded from field 'dev') 
[clang-analyzer-core.NullDereference]
           if (dst_metric(&rt->dst, RTAX_MTU) > rt->dst.dev->mtu)
                                                ^
   net/decnet/dn_route.c:1652:2: note: Taking false branch
           if (!net_eq(net, &init_net))
           ^
   net/decnet/dn_route.c:1657:6: note: Assuming 'err' is >= 0
           if (err < 0)
               ^~~~~~~
   net/decnet/dn_route.c:1657:2: note: Taking false branch
           if (err < 0)
           ^
   net/decnet/dn_route.c:1664:6: note: Assuming 'skb' is not equal to NULL
           if (skb == NULL)
               ^~~~~~~~~~~
   net/decnet/dn_route.c:1664:2: note: Taking false branch
           if (skb == NULL)
           ^
   net/decnet/dn_route.c:1669:6: note: Assuming the condition is true
           if (tb[RTA_SRC])

vim +396 drivers/video/fbdev/tmiofb.c

b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  381  
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  382  /*
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  383   * 
Writes an accelerator command to the accelerator's FIFO.
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  384   */
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  385  static 
int
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  386  
tmiofb_acc_write(struct fb_info *info, const u32 *cmd, unsigned int count)
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  387  {
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  388          
struct tmiofb_par *par = info->par;
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  389          
int ret;
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  390  
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  391          
ret = tmiofb_acc_wait(info, TMIOFB_FIFO_SIZE - count);
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  392          
if (ret)
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  393          
        return ret;
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  394  
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  395          
for (; count; count--, cmd++) {
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15 @396          
        tmio_iowrite16(*cmd >> 16, par->lcr + LCR_CMDH);
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  397          
        tmio_iowrite16(*cmd, par->lcr + LCR_CMDL);
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  398          
}
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  399  
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  400          
return ret;
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  401  }
b53cde3557b8f9 drivers/video/tmiofb.c Dmitry Baryshkov 2008-10-15  402  

:::::: The code at line 396 was first introduced by commit
:::::: b53cde3557b8f97e6a635782875d442551a89bf1 fbdev: add new TMIO framebuffer 
driver

:::::: TO: Dmitry Baryshkov <[email protected]>
:::::: CC: Linus Torvalds <[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