CC: [email protected]
CC: [email protected]
CC: [email protected]
TO: "Marc Kleine-Budde" <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   fb3b0673b7d5b477ed104949450cd511337ba3c6
commit: 1e846c7aeb067fefbd53f03db56e69d160781d9d can: mcp251xfd: move TEF 
handling into separate file
date:   6 days ago
:::::: branch date: 21 hours ago
:::::: commit date: 6 days ago
config: i386-randconfig-c001 
(https://download.01.org/0day-ci/archive/20220115/[email protected]/config)
compiler: clang version 14.0.0 (https://github.com/llvm/llvm-project 
84654f2733f63dc725a7b3d7c55d56849d2d9358)
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=1e846c7aeb067fefbd53f03db56e69d160781d9d
        git remote add linus 
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
        git fetch --no-tags linus master
        git checkout 1e846c7aeb067fefbd53f03db56e69d160781d9d
        # save the config file to linux build tree
        COMPILER_INSTALL_PATH=$HOME/0day COMPILER=clang make.cross ARCH=i386 
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 >>)
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                                                
        ^~~~
   include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
            ^~~~
   drivers/parport/parport_pc.c:3086:9: note: Calling 'parport_parse_param'
           return parport_parse_param(irqstr, val, PARPORT_IRQ_AUTO,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/parport/parport_pc.c:3063:2: note: '?' condition is false
           if (!s)
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                 ^
   drivers/parport/parport_pc.c:3063:7: note: 's' is null
           if (!s)
                ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                                                
        ^~~~
   include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
            ^~~~
   drivers/parport/parport_pc.c:3063:2: note: '?' condition is true
           if (!s)
           ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                                       ^
   include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
           ^
   drivers/parport/parport_pc.c:3063:2: note: Taking true branch
           if (!s)
           ^
   include/linux/compiler.h:56:23: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                         ^
   drivers/parport/parport_pc.c:3064:3: note: Returning without writing to 
'*val'
                   return 0;
                   ^
   drivers/parport/parport_pc.c:3086:9: note: Returning from 
'parport_parse_param'
           return parport_parse_param(irqstr, val, PARPORT_IRQ_AUTO,
                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/parport/parport_pc.c:3086:2: note: Returning without writing to 
'*val'
           return parport_parse_param(irqstr, val, PARPORT_IRQ_AUTO,
           ^
   drivers/parport/parport_pc.c:3151:7: note: Returning from 'parport_parse_irq'
                   if (parport_parse_irq(irq[i], &val))
                       ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                                                
        ^~~~
   include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
            ^~~~
   drivers/parport/parport_pc.c:3151:3: note: '?' condition is false
                   if (parport_parse_irq(irq[i], &val))
                   ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                                       ^
   include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
           ^
   drivers/parport/parport_pc.c:3151:3: note: Taking false branch
                   if (parport_parse_irq(irq[i], &val))
                   ^
   include/linux/compiler.h:56:23: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                         ^
   drivers/parport/parport_pc.c:3153:13: note: Assigned value is garbage or 
undefined
                   irqval[i] = val;
                             ^ ~~~
   1 warning generated.
   drivers/net/can/spi/mcp251xfd/mcp251xfd-regmap.c:372:4: warning: Value 
stored to 'err' is never read [clang-analyzer-deadcode.DeadStores]
                           err = 0;
                           ^     ~
   drivers/net/can/spi/mcp251xfd/mcp251xfd-regmap.c:372:4: note: Value stored 
to 'err' is never read
                           err = 0;
                           ^     ~
   1 warning generated.
>> drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c:152:34: warning: Value stored 
>> to 'tx_ring' during its initialization is never read 
>> [clang-analyzer-deadcode.DeadStores]
           const struct mcp251xfd_tx_ring *tx_ring = priv->tx;
                                           ^~~~~~~   ~~~~~~~~
   drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c:152:34: note: Value stored to 
'tx_ring' during its initialization is never read
           const struct mcp251xfd_tx_ring *tx_ring = priv->tx;
                                           ^~~~~~~   ~~~~~~~~
   1 warning generated.
   Suppressed 1 warnings (1 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.
   drivers/net/can/softing/softing_fw.c:531:3: warning: Value stored to 
'error_reporting' is never read [clang-analyzer-deadcode.DeadStores]
                   error_reporting += softing_error_reporting(netdev);
                   ^                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   drivers/net/can/softing/softing_fw.c:531:3: note: Value stored to 
'error_reporting' is never read
                   error_reporting += softing_error_reporting(netdev);
                   ^                  ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   Suppressed 1 warnings (1 with check filters).
   1 warning generated.
   sound/drivers/opl4/opl4_mixer.c:74:2: warning: Call to function 'strcat' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119 [clang-analyzer-security.insecureAPI.strcpy]
           strcat(card->mixername, ",OPL4");
           ^~~~~~
   sound/drivers/opl4/opl4_mixer.c:74:2: note: Call to function 'strcat' is 
insecure as it does not provide bounding of the memory buffer. Replace 
unbounded copy functions with analogous functions that support length arguments 
such as 'strlcat'. CWE-119
           strcat(card->mixername, ",OPL4");
           ^~~~~~
   2 warnings generated.
   sound/drivers/opl4/opl4_synth.c:444:18: warning: The result of the left 
shift is undefined because the left operand is negative 
[clang-analyzer-core.UndefinedBinaryOperatorResult]
                          (octave << 4) | ((pitch >> 7) & 
OPL4_F_NUMBER_HIGH_MASK));
                                  ^
   sound/drivers/opl4/opl4_synth.c:589:2: note: Control jumps to 'case 128:'  
at line 618
           switch (type) {
           ^
   sound/drivers/opl4/opl4_synth.c:619:3: note: Calling 
'snd_opl4_do_for_channel'
                   snd_opl4_do_for_channel(opl4, chan, snd_opl4_update_pitch);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
   sound/drivers/opl4/opl4_synth.c:340:2: note: Loop condition is false.  
Exiting loop
           spin_lock_irqsave(&opl4->reg_lock, flags);
           ^
   include/linux/spinlock.h:379:2: note: expanded from macro 'spin_lock_irqsave'
           raw_spin_lock_irqsave(spinlock_check(lock), flags);     \
           ^
   include/linux/spinlock.h:240:2: note: expanded from macro 
'raw_spin_lock_irqsave'
           do {                                            \
           ^
   sound/drivers/opl4/opl4_synth.c:340:2: note: Loop condition is false.  
Exiting loop
           spin_lock_irqsave(&opl4->reg_lock, flags);
           ^
   include/linux/spinlock.h:377:43: note: expanded from macro 
'spin_lock_irqsave'
   #define spin_lock_irqsave(lock, flags)                          \
                                                                   ^
   sound/drivers/opl4/opl4_synth.c:341:2: note: Loop condition is true.  
Entering loop body
           for (i = 0; i < OPL4_MAX_VOICES; i++) {
           ^
   sound/drivers/opl4/opl4_synth.c:343:7: note: Assuming 'chan' is equal to 
field 'chan'
                   if (voice->chan == chan) {
                       ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:52: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                      ^~~~
   sound/drivers/opl4/opl4_synth.c:343:3: note: '?' condition is false
                   if (voice->chan == chan) {
                   ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:31: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                 ^
   sound/drivers/opl4/opl4_synth.c:343:22: note: 'chan' is equal to field 'chan'
                   if (voice->chan == chan) {
                                      ^
   include/linux/compiler.h:56:47: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                                                 ^~~~
   include/linux/compiler.h:58:86: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                                                
        ^~~~
   include/linux/compiler.h:69:3: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
            ^~~~
   sound/drivers/opl4/opl4_synth.c:343:3: note: '?' condition is true
                   if (voice->chan == chan) {
                   ^
   include/linux/compiler.h:56:28: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                              ^
   include/linux/compiler.h:58:69: note: expanded from macro '__trace_if_var'
   #define __trace_if_var(cond) (__builtin_constant_p(cond) ? (cond) : 
__trace_if_value(cond))
                                                                       ^
   include/linux/compiler.h:69:2: note: expanded from macro '__trace_if_value'
           (cond) ?                                        \
           ^
   sound/drivers/opl4/opl4_synth.c:343:3: note: Taking true branch
                   if (voice->chan == chan) {
                   ^
   include/linux/compiler.h:56:23: note: expanded from macro 'if'
   #define if(cond, ...) if ( __trace_if_var( !!(cond , ## __VA_ARGS__) ) )
                         ^
   sound/drivers/opl4/opl4_synth.c:344:4: note: Calling 'snd_opl4_update_pitch'

vim +/tx_ring +152 drivers/net/can/spi/mcp251xfd/mcp251xfd-tef.c

1e846c7aeb067f Marc Kleine-Budde 2021-05-21  146  
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  147  static inline int
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  148  mcp251xfd_tef_obj_read(const 
struct mcp251xfd_priv *priv,
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  149                       struct 
mcp251xfd_hw_tef_obj *hw_tef_obj,
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  150                       const u8 
offset, const u8 len)
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  151  {
1e846c7aeb067f Marc Kleine-Budde 2021-05-21 @152        const struct 
mcp251xfd_tx_ring *tx_ring = priv->tx;
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  153        const int val_bytes = 
regmap_get_val_bytes(priv->map_rx);
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  154  
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  155        if 
(IS_ENABLED(CONFIG_CAN_MCP251XFD_SANITY) &&
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  156            (offset > 
tx_ring->obj_num ||
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  157             len > 
tx_ring->obj_num ||
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  158             offset + len > 
tx_ring->obj_num)) {
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  159                
netdev_err(priv->ndev,
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  160                           
"Trying to read too many TEF objects (max=%d, offset=%d, len=%d).\n",
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  161                           
tx_ring->obj_num, offset, len);
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  162                return -ERANGE;
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  163        }
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  164  
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  165        return 
regmap_bulk_read(priv->map_rx,
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  166                                
mcp251xfd_get_tef_obj_addr(offset),
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  167                                
hw_tef_obj,
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  168                                
sizeof(*hw_tef_obj) / val_bytes * len);
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  169  }
1e846c7aeb067f Marc Kleine-Budde 2021-05-21  170  

---
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