* 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-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-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-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-21 8:58 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-19 19:05 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.