:::::: 
:::::: Manual check reason: "low confidence static check warning: 
arch/x86/kernel/cpu/common.c:187:45: warning: Parameter 's' can be declared 
with const [constParameter]"
:::::: 

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

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   b13baccc3850ca8b8cccbf8ed9912dbaa0fdf7f3
commit: 8a1dc55a3f3ef0a723c3c117a567e7b5dd2c1793 x86/cpu: Sanitize 
X86_FEATURE_OSPKE
date:   12 months ago
:::::: branch date: 28 hours ago
:::::: commit date: 12 months ago
compiler: gcc-11 (Debian 11.3.0-3) 11.3.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout 8a1dc55a3f3ef0a723c3c117a567e7b5dd2c1793
        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 warnings: (new ones prefixed by >>)
>> arch/x86/mm/tlb.c:1225:8: warning: %ld in format string (no. 1) requires 
>> 'long' but the argument type is 'unsigned long'. [invalidPrintfArgType_sint]
    len = sprintf(buf, "%ldn", tlb_single_page_flush_ceiling);
          ^
--
>> arch/x86/mm/pat/set_memory.c:1033:17: warning: Local variable 'pfn' shadows 
>> outer variable [shadowVariable]
     unsigned long pfn = PFN_DOWN(__pa(address));
                   ^
   arch/x86/mm/pat/set_memory.c:971:40: note: Shadowed declaration
    unsigned long lpaddr, lpinc, ref_pfn, pfn, pfninc = 1;
                                          ^
   arch/x86/mm/pat/set_memory.c:1033:17: note: Shadow variable
     unsigned long pfn = PFN_DOWN(__pa(address));
                   ^
>> arch/x86/mm/pat/set_memory.c:2040:16: warning: Local variable 'addr' shadows 
>> outer variable [shadowVariable]
    unsigned long addr = (unsigned long)page_address(page);
                  ^
   arch/x86/mm/pat/cpa-test.c:110:22: note: Shadowed declaration
   static unsigned long addr[NTEST];
                        ^
   arch/x86/mm/pat/set_memory.c:2040:16: note: Shadow variable
    unsigned long addr = (unsigned long)page_address(page);
                  ^
   arch/x86/mm/pat/set_memory.c:2112:16: warning: Local variable 'addr' shadows 
outer variable [shadowVariable]
    unsigned long addr = (unsigned long)page_address(page);
                  ^
   arch/x86/mm/pat/cpa-test.c:110:22: note: Shadowed declaration
   static unsigned long addr[NTEST];
                        ^
   arch/x86/mm/pat/set_memory.c:2112:16: note: Shadow variable
    unsigned long addr = (unsigned long)page_address(page);
                  ^
   arch/x86/mm/pat/set_memory.c:2145:16: warning: Local variable 'addr' shadows 
outer variable [shadowVariable]
    unsigned long addr = (unsigned long)page_address(page);
                  ^
   arch/x86/mm/pat/cpa-test.c:110:22: note: Shadowed declaration
   static unsigned long addr[NTEST];
                        ^
   arch/x86/mm/pat/set_memory.c:2145:16: note: Shadow variable
    unsigned long addr = (unsigned long)page_address(page);
                  ^
   arch/x86/mm/pat/set_memory.c:2152:16: warning: Local variable 'addr' shadows 
outer variable [shadowVariable]
    unsigned long addr = (unsigned long)page_address(page);
                  ^
   arch/x86/mm/pat/cpa-test.c:110:22: note: Shadowed declaration
   static unsigned long addr[NTEST];
                        ^
   arch/x86/mm/pat/set_memory.c:2152:16: note: Shadow variable
    unsigned long addr = (unsigned long)page_address(page);
                  ^

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

>> arch/x86/mm/tlb.c:1225:8: warning: %ld in format string (no. 1) requires 
>> 'long' but the argument type is 'unsigned long'. [invalidPrintfArgType_sint]
    len = sprintf(buf, "%ldn", tlb_single_page_flush_ceiling);
          ^
--
   arch/x86/kernel/cpu/common.c:1366:40: warning: Comparing pointers that point 
to different objects [comparePointers]
    for (cdev = __x86_cpu_dev_start; cdev < __x86_cpu_dev_end; cdev++) {
                                          ^
   arch/x86/kernel/cpu/cpu.h:44:36: note: Variable declared here.
   extern const struct cpu_dev *const __x86_cpu_dev_start[],
                                      ^
   arch/x86/kernel/cpu/common.c:1366:14: note: Array decayed to pointer here.
    for (cdev = __x86_cpu_dev_start; cdev < __x86_cpu_dev_end; cdev++) {
                ^
   arch/x86/kernel/cpu/cpu.h:45:15: note: Variable declared here.
          *const __x86_cpu_dev_end[];
                 ^
   arch/x86/kernel/cpu/common.c:1366:42: note: Array decayed to pointer here.
    for (cdev = __x86_cpu_dev_start; cdev < __x86_cpu_dev_end; cdev++) {
                                            ^
   arch/x86/kernel/cpu/common.c:1366:40: note: Comparing pointers that point to 
different objects
    for (cdev = __x86_cpu_dev_start; cdev < __x86_cpu_dev_end; cdev++) {
                                          ^
>> arch/x86/kernel/cpu/common.c:187:45: warning: Parameter 's' can be declared 
>> with const [constParameter]
   static int __init x86_noinvpcid_setup(char *s)
                                               ^
>> arch/x86/kernel/cpu/common.c:467:59: warning: Parameter 'c' can be declared 
>> with const [constParameter]
   static __always_inline void setup_pku(struct cpuinfo_x86 *c)
                                                             ^
>> drivers/acpi/processor_idle.c:162:32: warning: Parameter 'cx' can be 
>> declared with const [constParameter]
        struct acpi_processor_cx *cx)
                                  ^
--
>> arch/x86/mm/pat/set_memory.c:399:52: warning: Same expression on both sides 
>> of '||' because 'r1_start<=r2_end&&r1_end>=r2_start' and 
>> 'r2_start<=r1_end&&r2_end>=r1_start' represent the same value. 
>> [knownConditionTrueFalse]
    return (r1_start <= r2_end && r1_end >= r2_start) ||
                                                      ^

vim +/s +187 arch/x86/kernel/cpu/common.c

0790c9aad84901 Andy Lutomirski 2017-06-29  186  
d12a72b844a49d Andy Lutomirski 2016-01-29 @187  static int __init 
x86_noinvpcid_setup(char *s)
d12a72b844a49d Andy Lutomirski 2016-01-29  188  {
d12a72b844a49d Andy Lutomirski 2016-01-29  189          /* noinvpcid doesn't 
accept parameters */
d12a72b844a49d Andy Lutomirski 2016-01-29  190          if (s)
d12a72b844a49d Andy Lutomirski 2016-01-29  191                  return -EINVAL;
d12a72b844a49d Andy Lutomirski 2016-01-29  192  
d12a72b844a49d Andy Lutomirski 2016-01-29  193          /* do not emit a 
message if the feature is not present */
d12a72b844a49d Andy Lutomirski 2016-01-29  194          if 
(!boot_cpu_has(X86_FEATURE_INVPCID))
d12a72b844a49d Andy Lutomirski 2016-01-29  195                  return 0;
d12a72b844a49d Andy Lutomirski 2016-01-29  196  
d12a72b844a49d Andy Lutomirski 2016-01-29  197          
setup_clear_cpu_cap(X86_FEATURE_INVPCID);
d12a72b844a49d Andy Lutomirski 2016-01-29  198          pr_info("noinvpcid: 
INVPCID feature disabled\n");
d12a72b844a49d Andy Lutomirski 2016-01-29  199          return 0;
d12a72b844a49d Andy Lutomirski 2016-01-29  200  }
d12a72b844a49d Andy Lutomirski 2016-01-29  201  early_param("noinvpcid", 
x86_noinvpcid_setup);
d12a72b844a49d Andy Lutomirski 2016-01-29  202  

:::::: The code at line 187 was first introduced by commit
:::::: d12a72b844a49d4162f24cefdab30bed3f86730e x86/mm: Add a 'noinvpcid' boot 
option to turn off INVPCID

:::::: TO: Andy Lutomirski <[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