CC: [email protected]
BCC: [email protected]
CC: [email protected]
TO: Sven Schnelle <[email protected]>
CC: Vasily Gorbik <[email protected]>
CC: Heiko Carstens <[email protected]>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git 
master
head:   4b97bac0756a81cda5afd45417a99b5bccdcff67
commit: 779df2248739b6308c03b354c99e4c352141e3bc s390/vdso: add minimal compat 
vdso
date:   10 months ago
:::::: branch date: 9 hours ago
:::::: commit date: 10 months ago
compiler: s390-linux-gcc (GCC) 11.3.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout 779df2248739b6308c03b354c99e4c352141e3bc
        cppcheck --quiet --enable=style,performance,portability --template=gcc 
FILE

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


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

>> arch/s390/mm/mmap.c:74:51: warning: Parameter 'filp' can be declared with 
>> const [constParameter]
   unsigned long arch_get_unmapped_area(struct file *filp, unsigned long addr,
                                                     ^
   arch/s390/mm/mmap.c:113:59: warning: Parameter 'filp' can be declared with 
const [constParameter]
   unsigned long arch_get_unmapped_area_topdown(struct file *filp, unsigned 
long addr,
                                                             ^
--
>> arch/s390/kernel/vdso.c:177:30: warning: Subtracting pointers that point to 
>> different objects [comparePointers]
     vdso_text_len = vdso32_end - vdso32_start;
                                ^
   arch/s390/kernel/vdso.c:23:29: note: Variable declared here.
   extern char vdso32_start[], vdso32_end[];
                               ^
   arch/s390/kernel/vdso.c:177:19: note: Array decayed to pointer here.
     vdso_text_len = vdso32_end - vdso32_start;
                     ^
   arch/s390/kernel/vdso.c:23:13: note: Variable declared here.
   extern char vdso32_start[], vdso32_end[];
               ^
   arch/s390/kernel/vdso.c:177:32: note: Array decayed to pointer here.
     vdso_text_len = vdso32_end - vdso32_start;
                                  ^
   arch/s390/kernel/vdso.c:177:30: note: Subtracting pointers that point to 
different objects
     vdso_text_len = vdso32_end - vdso32_start;
                                ^
   arch/s390/kernel/vdso.c:180:30: warning: Subtracting pointers that point to 
different objects [comparePointers]
     vdso_text_len = vdso64_end - vdso64_start;
                                ^
   arch/s390/kernel/vdso.c:22:29: note: Variable declared here.
   extern char vdso64_start[], vdso64_end[];
                               ^
   arch/s390/kernel/vdso.c:180:19: note: Array decayed to pointer here.
     vdso_text_len = vdso64_end - vdso64_start;
                     ^
   arch/s390/kernel/vdso.c:22:13: note: Variable declared here.
   extern char vdso64_start[], vdso64_end[];
               ^
   arch/s390/kernel/vdso.c:180:32: note: Array decayed to pointer here.
     vdso_text_len = vdso64_end - vdso64_start;
                                  ^
   arch/s390/kernel/vdso.c:180:30: note: Subtracting pointers that point to 
different objects
     vdso_text_len = vdso64_end - vdso64_start;
                                ^
>> arch/s390/kernel/vdso.c:213:66: warning: Parameter 'end' can be declared 
>> with const [constParameter]
   static struct page ** __init vdso_setup_pages(void *start, void *end)
                                                                    ^

vim +177 arch/s390/kernel/vdso.c

80f06306240e0a Heiko Carstens     2020-11-16  162  
b020632e40c3ed Martin Schwidefsky 2008-12-25  163  int 
arch_setup_additional_pages(struct linux_binprm *bprm, int uses_interp)
b020632e40c3ed Martin Schwidefsky 2008-12-25  164  {
214b3564869cd9 Heiko Carstens     2021-02-05  165       unsigned long 
vdso_text_len, vdso_mapping_len;
214b3564869cd9 Heiko Carstens     2021-02-05  166       unsigned long 
vvar_start, vdso_text_start;
779df2248739b6 Sven Schnelle      2021-06-25  167       struct 
vm_special_mapping *vdso_mapping;
b020632e40c3ed Martin Schwidefsky 2008-12-25  168       struct mm_struct *mm = 
current->mm;
35bb092a91b4c4 Martin Schwidefsky 2017-05-15  169       struct vm_area_struct 
*vma;
b020632e40c3ed Martin Schwidefsky 2008-12-25  170       int rc;
b020632e40c3ed Martin Schwidefsky 2008-12-25  171  
eeab78b05d202f Heiko Carstens     2021-02-05  172       
BUILD_BUG_ON(VVAR_NR_PAGES != __VVAR_PAGES);
d8ed45c5dcd455 Michel Lespinasse  2020-06-08  173       if 
(mmap_write_lock_killable(mm))
69048176078add Michal Hocko       2016-05-23  174               return -EINTR;
779df2248739b6 Sven Schnelle      2021-06-25  175  
779df2248739b6 Sven Schnelle      2021-06-25  176       if (is_compat_task()) {
779df2248739b6 Sven Schnelle      2021-06-25 @177               vdso_text_len = 
vdso32_end - vdso32_start;
779df2248739b6 Sven Schnelle      2021-06-25  178               vdso_mapping = 
&vdso32_mapping;
779df2248739b6 Sven Schnelle      2021-06-25  179       } else {
779df2248739b6 Sven Schnelle      2021-06-25  180               vdso_text_len = 
vdso64_end - vdso64_start;
779df2248739b6 Sven Schnelle      2021-06-25  181               vdso_mapping = 
&vdso64_mapping;
779df2248739b6 Sven Schnelle      2021-06-25  182       }
eeab78b05d202f Heiko Carstens     2021-02-05  183       vdso_mapping_len = 
vdso_text_len + VVAR_NR_PAGES * PAGE_SIZE;
214b3564869cd9 Heiko Carstens     2021-02-05  184       vvar_start = 
get_unmapped_area(NULL, 0, vdso_mapping_len, 0, 0);
214b3564869cd9 Heiko Carstens     2021-02-05  185       rc = vvar_start;
214b3564869cd9 Heiko Carstens     2021-02-05  186       if 
(IS_ERR_VALUE(vvar_start))
8d4be7f318bc69 Heiko Carstens     2021-01-24  187               goto out;
eeab78b05d202f Heiko Carstens     2021-02-05  188       vma = 
_install_special_mapping(mm, vvar_start, VVAR_NR_PAGES*PAGE_SIZE,
eeab78b05d202f Heiko Carstens     2021-02-05  189                               
       VM_READ|VM_MAYREAD|VM_IO|VM_DONTDUMP|
eeab78b05d202f Heiko Carstens     2021-02-05  190                               
       VM_PFNMAP,
214b3564869cd9 Heiko Carstens     2021-02-05  191                               
       &vvar_mapping);
214b3564869cd9 Heiko Carstens     2021-02-05  192       rc = PTR_ERR(vma);
214b3564869cd9 Heiko Carstens     2021-02-05  193       if (IS_ERR(vma))
214b3564869cd9 Heiko Carstens     2021-02-05  194               goto out;
eeab78b05d202f Heiko Carstens     2021-02-05  195       vdso_text_start = 
vvar_start + VVAR_NR_PAGES * PAGE_SIZE;
5056c2c53a22a6 Heiko Carstens     2021-01-24  196       /* VM_MAYWRITE for COW 
so gdb can set breakpoints */
214b3564869cd9 Heiko Carstens     2021-02-05  197       vma = 
_install_special_mapping(mm, vdso_text_start, vdso_text_len,
b020632e40c3ed Martin Schwidefsky 2008-12-25  198                               
       VM_READ|VM_EXEC|
909af768e88867 Jason Baron        2012-03-23  199                               
       VM_MAYREAD|VM_MAYWRITE|VM_MAYEXEC,
779df2248739b6 Sven Schnelle      2021-06-25  200                               
       vdso_mapping);
5056c2c53a22a6 Heiko Carstens     2021-01-24  201       if (IS_ERR(vma)) {
214b3564869cd9 Heiko Carstens     2021-02-05  202               do_munmap(mm, 
vvar_start, PAGE_SIZE, NULL);
5056c2c53a22a6 Heiko Carstens     2021-01-24  203               rc = 
PTR_ERR(vma);
5056c2c53a22a6 Heiko Carstens     2021-01-24  204       } else {
5056c2c53a22a6 Heiko Carstens     2021-01-24  205               
current->mm->context.vdso_base = vdso_text_start;
35bb092a91b4c4 Martin Schwidefsky 2017-05-15  206               rc = 0;
5056c2c53a22a6 Heiko Carstens     2021-01-24  207       }
8d4be7f318bc69 Heiko Carstens     2021-01-24  208  out:
d8ed45c5dcd455 Michel Lespinasse  2020-06-08  209       mmap_write_unlock(mm);
b020632e40c3ed Martin Schwidefsky 2008-12-25  210       return rc;
b020632e40c3ed Martin Schwidefsky 2008-12-25  211  }
b020632e40c3ed Martin Schwidefsky 2008-12-25  212  
779df2248739b6 Sven Schnelle      2021-06-25 @213  static struct page ** __init 
vdso_setup_pages(void *start, void *end)
b020632e40c3ed Martin Schwidefsky 2008-12-25  214  {
779df2248739b6 Sven Schnelle      2021-06-25  215       int pages = (end - 
start) >> PAGE_SHIFT;
779df2248739b6 Sven Schnelle      2021-06-25  216       struct page **pagelist;
b020632e40c3ed Martin Schwidefsky 2008-12-25  217       int i;
b020632e40c3ed Martin Schwidefsky 2008-12-25  218  
779df2248739b6 Sven Schnelle      2021-06-25  219       pagelist = 
kcalloc(pages + 1, sizeof(struct page *), GFP_KERNEL);
779df2248739b6 Sven Schnelle      2021-06-25  220       if (!pagelist)
779df2248739b6 Sven Schnelle      2021-06-25  221               panic("%s: 
Cannot allocate page list for VDSO", __func__);
779df2248739b6 Sven Schnelle      2021-06-25  222       for (i = 0; i < pages; 
i++)
779df2248739b6 Sven Schnelle      2021-06-25  223               pagelist[i] = 
virt_to_page(start + i * PAGE_SIZE);
779df2248739b6 Sven Schnelle      2021-06-25  224       return pagelist;
779df2248739b6 Sven Schnelle      2021-06-25  225  }
d57778feb9878a Sven Schnelle      2021-06-23  226  

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