All of lore.kernel.org
 help / color / mirror / Atom feed
From: kernel test robot <lkp@intel.com>
To: kbuild@lists.01.org
Subject: fs/userfaultfd.c:1849:9: warning: Identical condition 'ret', second condition is always false
Date: Sat, 19 Dec 2020 03:38:11 +0800	[thread overview]
Message-ID: <202012190303.y72AsS6l-lkp@intel.com> (raw)

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

CC: kbuild-all(a)lists.01.org
CC: linux-kernel(a)vger.kernel.org
TO: Andrea Arcangeli <aarcange@redhat.com>
CC: Peter Xu <peterx@redhat.com>
CC: Andrew Morton <akpm@linux-foundation.org>
CC: Linux Memory Management List <linux-mm@kvack.org>
CC: Jerome Glisse <jglisse@redhat.com>

tree:   https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git master
head:   a409ed156a90093a03fe6a93721ddf4c591eac87
commit: 63b2d4174c4ad1f40b48d7138e71bcb564c1fe03 userfaultfd: wp: add the writeprotect API to userfaultfd ioctl
date:   9 months ago
:::::: branch date: 18 hours ago
:::::: commit date: 9 months ago
compiler: nds32le-linux-gcc (GCC) 9.3.0

If you fix the issue, kindly add following tag as appropriate
Reported-by: kernel test robot <lkp@intel.com>


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

   fs/userfaultfd.c:417:40: warning: Boolean result is used in bitwise operation. Clarify expression with parentheses. [clarifyCondition]
    VM_BUG_ON(!(reason & VM_UFFD_MISSING) ^ !!(reason & VM_UFFD_WP));
                                          ^
   fs/userfaultfd.c:902:40: warning: Boolean result is used in bitwise operation. Clarify expression with parentheses. [clarifyCondition]
     BUG_ON(!!vma->vm_userfaultfd_ctx.ctx ^
                                          ^
   fs/userfaultfd.c:1379:40: warning: Boolean result is used in bitwise operation. Clarify expression with parentheses. [clarifyCondition]
     BUG_ON(!!cur->vm_userfaultfd_ctx.ctx ^
                                          ^
   fs/userfaultfd.c:1571:40: warning: Boolean result is used in bitwise operation. Clarify expression with parentheses. [clarifyCondition]
     BUG_ON(!!cur->vm_userfaultfd_ctx.ctx ^
                                          ^
>> fs/userfaultfd.c:1849:9: warning: Identical condition 'ret', second condition is always false [identicalConditionAfterEarlyExit]
    return ret;
           ^
   fs/userfaultfd.c:1841:6: note: first condition
    if (ret)
        ^
   fs/userfaultfd.c:1849:9: note: second condition
    return ret;
           ^

vim +/ret +1849 fs/userfaultfd.c

ad465cae96b456b Andrea Arcangeli 2015-09-04  1807  
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1808  static int userfaultfd_writeprotect(struct userfaultfd_ctx *ctx,
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1809  				    unsigned long arg)
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1810  {
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1811  	int ret;
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1812  	struct uffdio_writeprotect uffdio_wp;
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1813  	struct uffdio_writeprotect __user *user_uffdio_wp;
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1814  	struct userfaultfd_wake_range range;
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1815  
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1816  	if (READ_ONCE(ctx->mmap_changing))
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1817  		return -EAGAIN;
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1818  
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1819  	user_uffdio_wp = (struct uffdio_writeprotect __user *) arg;
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1820  
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1821  	if (copy_from_user(&uffdio_wp, user_uffdio_wp,
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1822  			   sizeof(struct uffdio_writeprotect)))
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1823  		return -EFAULT;
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1824  
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1825  	ret = validate_range(ctx->mm, &uffdio_wp.range.start,
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1826  			     uffdio_wp.range.len);
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1827  	if (ret)
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1828  		return ret;
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1829  
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1830  	if (uffdio_wp.mode & ~(UFFDIO_WRITEPROTECT_MODE_DONTWAKE |
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1831  			       UFFDIO_WRITEPROTECT_MODE_WP))
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1832  		return -EINVAL;
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1833  	if ((uffdio_wp.mode & UFFDIO_WRITEPROTECT_MODE_WP) &&
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1834  	     (uffdio_wp.mode & UFFDIO_WRITEPROTECT_MODE_DONTWAKE))
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1835  		return -EINVAL;
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1836  
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1837  	ret = mwriteprotect_range(ctx->mm, uffdio_wp.range.start,
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1838  				  uffdio_wp.range.len, uffdio_wp.mode &
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1839  				  UFFDIO_WRITEPROTECT_MODE_WP,
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1840  				  &ctx->mmap_changing);
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1841  	if (ret)
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1842  		return ret;
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1843  
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1844  	if (!(uffdio_wp.mode & UFFDIO_WRITEPROTECT_MODE_DONTWAKE)) {
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1845  		range.start = uffdio_wp.range.start;
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1846  		range.len = uffdio_wp.range.len;
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1847  		wake_userfault(ctx, &range);
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1848  	}
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06 @1849  	return ret;
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1850  }
63b2d4174c4ad1f Andrea Arcangeli 2020-04-06  1851  

---
0-DAY CI Kernel Test Service, Intel Corporation
https://lists.01.org/hyperkitty/list/kbuild-all(a)lists.01.org

             reply	other threads:[~2020-12-18 19:38 UTC|newest]

Thread overview: 5+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-12-18 19:38 kernel test robot [this message]
2020-12-19 16:43 fs/userfaultfd.c:1849:9: warning: Identical condition 'ret', second condition is always false kernel test robot
2020-12-19 19:05 kernel test robot
2020-12-21  8:58 kernel test robot
2020-12-21 16:08 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=202012190303.y72AsS6l-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.