All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: mm/madvise.c:124:28: warning: Parameter 'anon_name' can be declared with const [constParameter]
Date: Mon, 11 Jul 2022 20:41:00 +0800	[thread overview]
Message-ID: <202207112002.OXzI2DeE-lkp@intel.com> (raw)

[-- Attachment #1: Type: text/plain, Size: 10962 bytes --]

:::::: 
:::::: Manual check reason: "low confidence static check warning: mm/madvise.c:124:28: warning: Parameter 'anon_name' can be declared with const [constParameter]"
:::::: 

CC: kbuild-all(a)lists.01.org
BCC: lkp(a)intel.com
CC: linux-kernel(a)vger.kernel.org
TO: Suren Baghdasaryan <surenb@google.com>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Linux Memory Management List <linux-mm@kvack.org>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   32346491ddf24599decca06190ebca03ff9de7f8
commit: 5c26f6ac9416b63d093e29c30e79b3297e425472 mm: refactor vm_area_struct::anon_vma_name usage code
date:   4 months ago
:::::: branch date: 15 hours ago
:::::: commit date: 4 months ago
compiler: nios2-linux-gcc (GCC) 11.3.0
reproduce (cppcheck warning):
        # apt-get install cppcheck
        git checkout 5c26f6ac9416b63d093e29c30e79b3297e425472
        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 <lkp@intel.com>


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

>> mm/madvise.c:124:28: warning: Parameter 'anon_name' can be declared with const [constParameter]
        struct anon_vma_name *anon_name)
                              ^
>> mm/swap.c:612:20: warning: Using pointer that is a temporary. [danglingTemporaryLifetime]
    if (pagevec_count(pvec))
                      ^
   mm/swap.c:610:25: note: Address of variable taken here.
    struct pagevec *pvec = &per_cpu(lru_pvecs.lru_add, cpu);
                           ^
   mm/swap.c:610:33: note: Temporary created here.
    struct pagevec *pvec = &per_cpu(lru_pvecs.lru_add, cpu);
                                   ^
   mm/swap.c:612:20: note: Using pointer that is a temporary.
    if (pagevec_count(pvec))
                      ^
   mm/swap.c:617:30: warning: Using pointer that is a temporary. [danglingTemporaryLifetime]
    if (data_race(pagevec_count(pvec))) {
                                ^
   mm/swap.c:615:9: note: Address of variable taken here.
    pvec = &per_cpu(lru_rotate.pvec, cpu);
           ^
   mm/swap.c:615:17: note: Temporary created here.
    pvec = &per_cpu(lru_rotate.pvec, cpu);
                   ^
   mm/swap.c:617:30: note: Using pointer that is a temporary.
    if (data_race(pagevec_count(pvec))) {
                                ^
   mm/swap.c:627:20: warning: Using pointer that is a temporary. [danglingTemporaryLifetime]
    if (pagevec_count(pvec))
                      ^
   mm/swap.c:626:9: note: Address of variable taken here.
    pvec = &per_cpu(lru_pvecs.lru_deactivate_file, cpu);
           ^
   mm/swap.c:626:17: note: Temporary created here.
    pvec = &per_cpu(lru_pvecs.lru_deactivate_file, cpu);
                   ^
   mm/swap.c:627:20: note: Using pointer that is a temporary.
    if (pagevec_count(pvec))
                      ^
   mm/swap.c:631:20: warning: Using pointer that is a temporary. [danglingTemporaryLifetime]
    if (pagevec_count(pvec))
                      ^
   mm/swap.c:630:9: note: Address of variable taken here.
    pvec = &per_cpu(lru_pvecs.lru_deactivate, cpu);
           ^
   mm/swap.c:630:17: note: Temporary created here.
    pvec = &per_cpu(lru_pvecs.lru_deactivate, cpu);
                   ^
   mm/swap.c:631:20: note: Using pointer that is a temporary.
    if (pagevec_count(pvec))
                      ^
   mm/swap.c:635:20: warning: Using pointer that is a temporary. [danglingTemporaryLifetime]
    if (pagevec_count(pvec))
                      ^
   mm/swap.c:634:9: note: Address of variable taken here.
    pvec = &per_cpu(lru_pvecs.lru_lazyfree, cpu);
           ^
   mm/swap.c:634:17: note: Temporary created here.
    pvec = &per_cpu(lru_pvecs.lru_lazyfree, cpu);
                   ^
   mm/swap.c:635:20: note: Using pointer that is a temporary.
    if (pagevec_count(pvec))
                      ^

vim +/anon_name +124 mm/madvise.c

9a10064f5625d5 Colin Cross        2022-01-14  100  
9a10064f5625d5 Colin Cross        2022-01-14  101  /* mmap_lock should be write-locked */
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04  102  static int replace_anon_vma_name(struct vm_area_struct *vma,
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04  103  				 struct anon_vma_name *anon_name)
9a10064f5625d5 Colin Cross        2022-01-14  104  {
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04  105  	struct anon_vma_name *orig_name = anon_vma_name(vma);
78db3412833dc9 Suren Baghdasaryan 2022-01-14  106  
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04  107  	if (!anon_name) {
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04  108  		vma->anon_name = NULL;
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04  109  		anon_vma_name_put(orig_name);
9a10064f5625d5 Colin Cross        2022-01-14  110  		return 0;
9a10064f5625d5 Colin Cross        2022-01-14  111  	}
9a10064f5625d5 Colin Cross        2022-01-14  112  
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04  113  	if (anon_vma_name_eq(orig_name, anon_name))
9a10064f5625d5 Colin Cross        2022-01-14  114  		return 0;
9a10064f5625d5 Colin Cross        2022-01-14  115  
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04  116  	anon_vma_name_get(anon_name);
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04  117  	vma->anon_name = anon_name;
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04  118  	anon_vma_name_put(orig_name);
9a10064f5625d5 Colin Cross        2022-01-14  119  
9a10064f5625d5 Colin Cross        2022-01-14  120  	return 0;
9a10064f5625d5 Colin Cross        2022-01-14  121  }
9a10064f5625d5 Colin Cross        2022-01-14  122  #else /* CONFIG_ANON_VMA_NAME */
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04  123  static int replace_anon_vma_name(struct vm_area_struct *vma,
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04 @124  				 struct anon_vma_name *anon_name)
9a10064f5625d5 Colin Cross        2022-01-14  125  {
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04  126  	if (anon_name)
9a10064f5625d5 Colin Cross        2022-01-14  127  		return -EINVAL;
9a10064f5625d5 Colin Cross        2022-01-14  128  
9a10064f5625d5 Colin Cross        2022-01-14  129  	return 0;
9a10064f5625d5 Colin Cross        2022-01-14  130  }
9a10064f5625d5 Colin Cross        2022-01-14  131  #endif /* CONFIG_ANON_VMA_NAME */
^1da177e4c3f41 Linus Torvalds     2005-04-16  132  /*
ac1e9acc5acf0b Colin Cross        2022-01-14  133   * Update the vm_flags on region of a vma, splitting it or merging it as
ac1e9acc5acf0b Colin Cross        2022-01-14  134   * necessary.  Must be called with mmap_sem held for writing;
^1da177e4c3f41 Linus Torvalds     2005-04-16  135   */
ac1e9acc5acf0b Colin Cross        2022-01-14  136  static int madvise_update_vma(struct vm_area_struct *vma,
ac1e9acc5acf0b Colin Cross        2022-01-14  137  			      struct vm_area_struct **prev, unsigned long start,
9a10064f5625d5 Colin Cross        2022-01-14  138  			      unsigned long end, unsigned long new_flags,
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04  139  			      struct anon_vma_name *anon_name)
^1da177e4c3f41 Linus Torvalds     2005-04-16  140  {
^1da177e4c3f41 Linus Torvalds     2005-04-16  141  	struct mm_struct *mm = vma->vm_mm;
ac1e9acc5acf0b Colin Cross        2022-01-14  142  	int error;
05b7438475ddba Prasanna Meda      2005-06-21  143  	pgoff_t pgoff;
e798c6e87b64d9 Prasanna Meda      2005-06-21  144  
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04  145  	if (new_flags == vma->vm_flags && anon_vma_name_eq(anon_vma_name(vma), anon_name)) {
05b7438475ddba Prasanna Meda      2005-06-21  146  		*prev = vma;
ac1e9acc5acf0b Colin Cross        2022-01-14  147  		return 0;
05b7438475ddba Prasanna Meda      2005-06-21  148  	}
05b7438475ddba Prasanna Meda      2005-06-21  149  
05b7438475ddba Prasanna Meda      2005-06-21  150  	pgoff = vma->vm_pgoff + ((start - vma->vm_start) >> PAGE_SHIFT);
05b7438475ddba Prasanna Meda      2005-06-21  151  	*prev = vma_merge(mm, *prev, start, end, new_flags, vma->anon_vma,
19a809afe2fe08 Andrea Arcangeli   2015-09-04  152  			  vma->vm_file, pgoff, vma_policy(vma),
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04  153  			  vma->vm_userfaultfd_ctx, anon_name);
05b7438475ddba Prasanna Meda      2005-06-21  154  	if (*prev) {
05b7438475ddba Prasanna Meda      2005-06-21  155  		vma = *prev;
05b7438475ddba Prasanna Meda      2005-06-21  156  		goto success;
05b7438475ddba Prasanna Meda      2005-06-21  157  	}
05b7438475ddba Prasanna Meda      2005-06-21  158  
05b7438475ddba Prasanna Meda      2005-06-21  159  	*prev = vma;
^1da177e4c3f41 Linus Torvalds     2005-04-16  160  
^1da177e4c3f41 Linus Torvalds     2005-04-16  161  	if (start != vma->vm_start) {
ac1e9acc5acf0b Colin Cross        2022-01-14  162  		if (unlikely(mm->map_count >= sysctl_max_map_count))
ac1e9acc5acf0b Colin Cross        2022-01-14  163  			return -ENOMEM;
def5efe0376501 David Rientjes     2017-02-24  164  		error = __split_vma(mm, vma, start, 1);
f3bc0dba3154fa Mike Rapoport      2019-09-23  165  		if (error)
ac1e9acc5acf0b Colin Cross        2022-01-14  166  			return error;
def5efe0376501 David Rientjes     2017-02-24  167  	}
^1da177e4c3f41 Linus Torvalds     2005-04-16  168  
^1da177e4c3f41 Linus Torvalds     2005-04-16  169  	if (end != vma->vm_end) {
ac1e9acc5acf0b Colin Cross        2022-01-14  170  		if (unlikely(mm->map_count >= sysctl_max_map_count))
ac1e9acc5acf0b Colin Cross        2022-01-14  171  			return -ENOMEM;
def5efe0376501 David Rientjes     2017-02-24  172  		error = __split_vma(mm, vma, end, 0);
f3bc0dba3154fa Mike Rapoport      2019-09-23  173  		if (error)
ac1e9acc5acf0b Colin Cross        2022-01-14  174  			return error;
def5efe0376501 David Rientjes     2017-02-24  175  	}
^1da177e4c3f41 Linus Torvalds     2005-04-16  176  
836d5ffd345509 Hugh Dickins       2005-09-03  177  success:
^1da177e4c3f41 Linus Torvalds     2005-04-16  178  	/*
c1e8d7c6a7a682 Michel Lespinasse  2020-06-08  179  	 * vm_flags is protected by the mmap_lock held in write mode.
^1da177e4c3f41 Linus Torvalds     2005-04-16  180  	 */
e798c6e87b64d9 Prasanna Meda      2005-06-21  181  	vma->vm_flags = new_flags;
9a10064f5625d5 Colin Cross        2022-01-14  182  	if (!vma->vm_file) {
5c26f6ac9416b6 Suren Baghdasaryan 2022-03-04  183  		error = replace_anon_vma_name(vma, anon_name);
9a10064f5625d5 Colin Cross        2022-01-14  184  		if (error)
9a10064f5625d5 Colin Cross        2022-01-14  185  			return error;
9a10064f5625d5 Colin Cross        2022-01-14  186  	}
f3bc0dba3154fa Mike Rapoport      2019-09-23  187  
ac1e9acc5acf0b Colin Cross        2022-01-14  188  	return 0;
^1da177e4c3f41 Linus Torvalds     2005-04-16  189  }
^1da177e4c3f41 Linus Torvalds     2005-04-16  190  

-- 
0-DAY CI Kernel Test Service
https://01.org/lkp

             reply	other threads:[~2022-07-11 12:41 UTC|newest]

Thread overview: 3+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-11 12:41 kernel test robot [this message]
  -- strict thread matches above, loose matches on Subject: below --
2022-06-17 15:24 mm/madvise.c:124:28: warning: Parameter 'anon_name' can be declared with const [constParameter] kernel test robot
2022-06-16 20:15 kernel test robot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=202207112002.OXzI2DeE-lkp@intel.com \
    --to=lkp@intel.com \
    --cc=kbuild@lists.01.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.