All of lore.kernel.org
 help / color / mirror / Atom feed
* fs/userfaultfd.c:1849:9: warning: Identical condition 'ret', second condition is always false
@ 2020-12-19 19:05 kernel test robot
  0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2020-12-19 19:05 UTC (permalink / raw)
  To: kbuild

[-- 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:   3644e2d2dda78e21edd8f5415b6d7ab03f5f54f3
commit: 63b2d4174c4ad1f40b48d7138e71bcb564c1fe03 userfaultfd: wp: add the writeprotect API to userfaultfd ioctl
date:   9 months ago
:::::: branch date: 21 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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* fs/userfaultfd.c:1849:9: warning: Identical condition 'ret', second condition is always false
@ 2020-12-21 16:08 kernel test robot
  0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2020-12-21 16:08 UTC (permalink / raw)
  To: kbuild

[-- 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:   e37b12e4bb21e7c81732370b0a2b34bd196f380b
commit: 63b2d4174c4ad1f40b48d7138e71bcb564c1fe03 userfaultfd: wp: add the writeprotect API to userfaultfd ioctl
date:   9 months ago
:::::: branch date: 19 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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* fs/userfaultfd.c:1849:9: warning: Identical condition 'ret', second condition is always false
@ 2020-12-21  8:58 kernel test robot
  0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2020-12-21  8:58 UTC (permalink / raw)
  To: kbuild

[-- 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:   e37b12e4bb21e7c81732370b0a2b34bd196f380b
commit: 63b2d4174c4ad1f40b48d7138e71bcb564c1fe03 userfaultfd: wp: add the writeprotect API to userfaultfd ioctl
date:   9 months ago
:::::: branch date: 12 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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* fs/userfaultfd.c:1849:9: warning: Identical condition 'ret', second condition is always false
@ 2020-12-19 16:43 kernel test robot
  0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2020-12-19 16:43 UTC (permalink / raw)
  To: kbuild

[-- 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:   3644e2d2dda78e21edd8f5415b6d7ab03f5f54f3
commit: 63b2d4174c4ad1f40b48d7138e71bcb564c1fe03 userfaultfd: wp: add the writeprotect API to userfaultfd ioctl
date:   9 months ago
:::::: branch date: 19 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

^ permalink raw reply	[flat|nested] 5+ messages in thread

* fs/userfaultfd.c:1849:9: warning: Identical condition 'ret', second condition is always false
@ 2020-12-18 19:38 kernel test robot
  0 siblings, 0 replies; 5+ messages in thread
From: kernel test robot @ 2020-12-18 19:38 UTC (permalink / raw)
  To: kbuild

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

^ permalink raw reply	[flat|nested] 5+ messages in thread

end of thread, other threads:[~2020-12-21 16:08 UTC | newest]

Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-12-19 19:05 fs/userfaultfd.c:1849:9: warning: Identical condition 'ret', second condition is always false kernel test robot
  -- strict thread matches above, loose matches on Subject: below --
2020-12-21 16:08 kernel test robot
2020-12-21  8:58 kernel test robot
2020-12-19 16:43 kernel test robot
2020-12-18 19:38 kernel test robot

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.