:::::: 
:::::: Manual check reason: "low confidence static check warning: 
arch/x86/kernel/cpu/cacheinfo.c:799:22: warning: Shifting signed 32-bit value 
by 31 bits is implementation-defined behaviour [shiftTooManyBitsSigned]"
:::::: 

CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: Thomas Gleixner <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   ca85855bdcae8f84f1512e88b4c75009ea17ea2f
commit: 4b92d4add5f6dcf21275185c997d6ecb800054cd drivers: base: cacheinfo: Get 
rid of DEFINE_SMP_CALL_CACHE_FUNCTION()
date:   11 months ago
:::::: branch date: 21 hours ago
:::::: commit date: 11 months ago
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout 4b92d4add5f6dcf21275185c997d6ecb800054cd
        cppcheck --quiet --enable=style,performance,portability --template=gcc 
FILE

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


cppcheck possible warnings: (new ones prefixed by >>, may not real problems)

>> arch/x86/kernel/cpu/cacheinfo.c:799:22: warning: Shifting signed 32-bit 
>> value by 31 bits is implementation-defined behaviour [shiftTooManyBitsSigned]
       if (regs[j] & (1 << 31))
                        ^
>> arch/x86/kernel/cpu/cacheinfo.c:799:22: warning: Signed integer overflow for 
>> expression '1<<31'. [integerOverflow]
       if (regs[j] & (1 << 31))
                        ^
>> arch/x86/kernel/cpu/cacheinfo.c:189:12: warning: union member 
>> 'l2_cache::size_in_kb' is never used. [unusedStructMember]
     unsigned size_in_kb:16;
              ^
>> arch/x86/kernel/cpu/cacheinfo.c:199:12: warning: union member 
>> 'l3_cache::res' is never used. [unusedStructMember]
     unsigned res:2;
              ^

vim +799 arch/x86/kernel/cpu/cacheinfo.c

^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  731  
f2d0d263b51d13 arch/i386/kernel/cpu/intel_cacheinfo.c Shaohua Li       
2006-03-23  732          if (c->cpuid_level > 3) {
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  733                  static int is_initialized;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  734  
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  735                  if (is_initialized == 0) {
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  736                          /* Init num_cache_leaves from boot CPU 
*/
04a1541828ea22 arch/x86/kernel/cpu/intel_cacheinfo.c  Andreas Herrmann 
2012-10-19  737                          num_cache_leaves = 
find_num_cache_leaves(c);
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  738                          is_initialized++;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  739                  }
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  740  
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  741                  /*
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  742                   * Whenever possible use cpuid(4), 
deterministic cache
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  743                   * parameters cpuid leaf to find the cache 
details
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  744                   */
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  745                  for (i = 0; i < num_cache_leaves; i++) {
719038de98bc84 arch/x86/kernel/cpu/intel_cacheinfo.c  Borislav Petkov  
2013-06-08  746                          struct _cpuid4_info_regs this_leaf = 
{};
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  747                          int retval;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  748  
f9b90566cd46e1 arch/x86/kernel/cpu/intel_cacheinfo.c  Mike Travis      
2009-01-10  749                          retval = cpuid4_cache_lookup_regs(i, 
&this_leaf);
719038de98bc84 arch/x86/kernel/cpu/intel_cacheinfo.c  Borislav Petkov  
2013-06-08  750                          if (retval < 0)
719038de98bc84 arch/x86/kernel/cpu/intel_cacheinfo.c  Borislav Petkov  
2013-06-08  751                                  continue;
719038de98bc84 arch/x86/kernel/cpu/intel_cacheinfo.c  Borislav Petkov  
2013-06-08  752  
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  753                          switch (this_leaf.eax.split.level) {
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  754                          case 1:
0d55ba46bfbee6 arch/x86/kernel/cpu/intel_cacheinfo.c  Sudeep Holla     
2015-03-04  755                                  if (this_leaf.eax.split.type 
== CTYPE_DATA)
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  756                                          new_l1d = 
this_leaf.size/1024;
0d55ba46bfbee6 arch/x86/kernel/cpu/intel_cacheinfo.c  Sudeep Holla     
2015-03-04  757                                  else if 
(this_leaf.eax.split.type == CTYPE_INST)
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  758                                          new_l1i = 
this_leaf.size/1024;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  759                                  break;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  760                          case 2:
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  761                                  new_l2 = this_leaf.size/1024;
1e9f28fa1eb977 arch/i386/kernel/cpu/intel_cacheinfo.c Siddha, Suresh B 
2006-03-27  762                                  num_threads_sharing = 1 + 
this_leaf.eax.split.num_threads_sharing;
1e9f28fa1eb977 arch/i386/kernel/cpu/intel_cacheinfo.c Siddha, Suresh B 
2006-03-27  763                                  index_msb = 
get_count_order(num_threads_sharing);
ddc5681ed33a27 arch/x86/kernel/cpu/intel_cacheinfo.c  Shai Fultheim    
2012-04-20  764                                  l2_id = c->apicid & ~((1 << 
index_msb) - 1);
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  765                                  break;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  766                          case 3:
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  767                                  new_l3 = this_leaf.size/1024;
1e9f28fa1eb977 arch/i386/kernel/cpu/intel_cacheinfo.c Siddha, Suresh B 
2006-03-27  768                                  num_threads_sharing = 1 + 
this_leaf.eax.split.num_threads_sharing;
719038de98bc84 arch/x86/kernel/cpu/intel_cacheinfo.c  Borislav Petkov  
2013-06-08  769                                  index_msb = 
get_count_order(num_threads_sharing);
ddc5681ed33a27 arch/x86/kernel/cpu/intel_cacheinfo.c  Shai Fultheim    
2012-04-20  770                                  l3_id = c->apicid & ~((1 << 
index_msb) - 1);
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  771                                  break;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  772                          default:
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  773                                  break;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  774                          }
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  775                  }
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  776          }
b06be912a3ad68 arch/i386/kernel/cpu/intel_cacheinfo.c Shaohua Li       
2006-03-27  777          /*
b06be912a3ad68 arch/i386/kernel/cpu/intel_cacheinfo.c Shaohua Li       
2006-03-27  778           * Don't use cpuid2 if cpuid4 is supported. For P4, we 
use cpuid2 for
b06be912a3ad68 arch/i386/kernel/cpu/intel_cacheinfo.c Shaohua Li       
2006-03-27  779           * trace cache
b06be912a3ad68 arch/i386/kernel/cpu/intel_cacheinfo.c Shaohua Li       
2006-03-27  780           */
b06be912a3ad68 arch/i386/kernel/cpu/intel_cacheinfo.c Shaohua Li       
2006-03-27  781          if ((num_cache_leaves == 0 || c->x86 == 15) && 
c->cpuid_level > 1) {
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  782                  /* supports eax=2  call */
c1666e663d8443 arch/x86/kernel/cpu/intel_cacheinfo.c  Harvey Harrison  
2008-01-31  783                  int j, n;
c1666e663d8443 arch/x86/kernel/cpu/intel_cacheinfo.c  Harvey Harrison  
2008-01-31  784                  unsigned int regs[4];
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  785                  unsigned char *dp = (unsigned char *)regs;
b06be912a3ad68 arch/i386/kernel/cpu/intel_cacheinfo.c Shaohua Li       
2006-03-27  786                  int only_trace = 0;
b06be912a3ad68 arch/i386/kernel/cpu/intel_cacheinfo.c Shaohua Li       
2006-03-27  787  
b06be912a3ad68 arch/i386/kernel/cpu/intel_cacheinfo.c Shaohua Li       
2006-03-27  788                  if (num_cache_leaves != 0 && c->x86 == 15)
b06be912a3ad68 arch/i386/kernel/cpu/intel_cacheinfo.c Shaohua Li       
2006-03-27  789                          only_trace = 1;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  790  
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  791                  /* Number of times to iterate */
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  792                  n = cpuid_eax(2) & 0xFF;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  793  
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  794                  for (i = 0 ; i < n ; i++) {
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  795                          cpuid(2, &regs[0], &regs[1], &regs[2], 
&regs[3]);
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  796  
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  797                          /* If bit 31 is set, this is an 
unknown format */
8bdbd962ecfcbd arch/x86/kernel/cpu/intel_cacheinfo.c  Alan Cox         
2009-07-04  798                          for (j = 0 ; j < 3 ; j++)
8bdbd962ecfcbd arch/x86/kernel/cpu/intel_cacheinfo.c  Alan Cox         
2009-07-04 @799                                  if (regs[j] & (1 << 31))
8bdbd962ecfcbd arch/x86/kernel/cpu/intel_cacheinfo.c  Alan Cox         
2009-07-04  800                                          regs[j] = 0;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  801  
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  802                          /* Byte 0 is level count, not a 
descriptor */
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  803                          for (j = 1 ; j < 16 ; j++) {
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  804                                  unsigned char des = dp[j];
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  805                                  unsigned char k = 0;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  806  
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  807                                  /* look up this descriptor in 
the table */
8bdbd962ecfcbd arch/x86/kernel/cpu/intel_cacheinfo.c  Alan Cox         
2009-07-04  808                                  while 
(cache_table[k].descriptor != 0) {
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  809                                          if 
(cache_table[k].descriptor == des) {
b06be912a3ad68 arch/i386/kernel/cpu/intel_cacheinfo.c Shaohua Li       
2006-03-27  810                                                  if (only_trace 
&& cache_table[k].cache_type != LVL_TRACE)
b06be912a3ad68 arch/i386/kernel/cpu/intel_cacheinfo.c Shaohua Li       
2006-03-27  811                                                          break;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  812                                                  switch 
(cache_table[k].cache_type) {
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  813                                                  case 
LVL_1_INST:
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  814                                                          l1i += 
cache_table[k].size;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  815                                                          break;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  816                                                  case 
LVL_1_DATA:
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  817                                                          l1d += 
cache_table[k].size;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  818                                                          break;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  819                                                  case LVL_2:
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  820                                                          l2 += 
cache_table[k].size;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  821                                                          break;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  822                                                  case LVL_3:
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  823                                                          l3 += 
cache_table[k].size;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  824                                                          break;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  825                                                  case LVL_TRACE:
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  826                                                          trace 
+= cache_table[k].size;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  827                                                          break;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  828                                                  }
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  829  
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  830                                                  break;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  831                                          }
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  832  
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  833                                          k++;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  834                                  }
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  835                          }
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  836                  }
b06be912a3ad68 arch/i386/kernel/cpu/intel_cacheinfo.c Shaohua Li       
2006-03-27  837          }
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  838  
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  839          if (new_l1d)
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  840                  l1d = new_l1d;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  841  
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  842          if (new_l1i)
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  843                  l1i = new_l1i;
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  844  
1e9f28fa1eb977 arch/i386/kernel/cpu/intel_cacheinfo.c Siddha, Suresh B 
2006-03-27  845          if (new_l2) {
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  846                  l2 = new_l2;
c8e56d20f2d190 arch/x86/kernel/cpu/intel_cacheinfo.c  Borislav Petkov  
2015-06-04  847  #ifdef CONFIG_SMP
b6278470b7cdbf arch/x86/kernel/cpu/intel_cacheinfo.c  Mike Travis      
2007-10-19  848                  per_cpu(cpu_llc_id, cpu) = l2_id;
1e9f28fa1eb977 arch/i386/kernel/cpu/intel_cacheinfo.c Siddha, Suresh B 
2006-03-27  849  #endif
1e9f28fa1eb977 arch/i386/kernel/cpu/intel_cacheinfo.c Siddha, Suresh B 
2006-03-27  850          }
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  851  
1e9f28fa1eb977 arch/i386/kernel/cpu/intel_cacheinfo.c Siddha, Suresh B 
2006-03-27  852          if (new_l3) {
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  853                  l3 = new_l3;
c8e56d20f2d190 arch/x86/kernel/cpu/intel_cacheinfo.c  Borislav Petkov  
2015-06-04  854  #ifdef CONFIG_SMP
b6278470b7cdbf arch/x86/kernel/cpu/intel_cacheinfo.c  Mike Travis      
2007-10-19  855                  per_cpu(cpu_llc_id, cpu) = l3_id;
1e9f28fa1eb977 arch/i386/kernel/cpu/intel_cacheinfo.c Siddha, Suresh B 
2006-03-27  856  #endif
1e9f28fa1eb977 arch/i386/kernel/cpu/intel_cacheinfo.c Siddha, Suresh B 
2006-03-27  857          }
^1da177e4c3f41 arch/i386/kernel/cpu/intel_cacheinfo.c Linus Torvalds   
2005-04-16  858  

:::::: The code at line 799 was first introduced by commit
:::::: 8bdbd962ecfcbdd96f9dbb02d780b4553afd2543 x86/cpu: Clean up various files 
a bit

:::::: TO: Alan Cox <[email protected]>
:::::: CC: Ingo Molnar <[email protected]>

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

Reply via email to