From: kernel test robot <lkp@intel.com>
To: oe-kbuild@lists.linux.dev
Cc: lkp@intel.com, Dan Carpenter <error27@gmail.com>
Subject: [linux-next:master 8001/8126] mm/msync.c:90 __do_sys_msync() warn: comparison of a potentially tagged address (__do_sys_msync, -2, __UNIQUE_ID_x_562)
Date: Sun, 1 Sep 2024 13:46:14 +0800 [thread overview]
Message-ID: <202409011336.XWDZbc4n-lkp@intel.com> (raw)
BCC: lkp@intel.com
CC: oe-kbuild-all@lists.linux.dev
CC: Linux Memory Management List <linux-mm@kvack.org>
TO: Stephen Rothwell <sfr@canb.auug.org.au>
tree: https://git.kernel.org/pub/scm/linux/kernel/git/next/linux-next.git master
head: 985bf40edf4343dcb04c33f58b40b4a85c1776d4
commit: 44739e2fcaaffa72d3a90ed3c54fbcc3942345c5 [8001/8126] Merge branch 'fs-next' of linux-next
:::::: branch date: 2 days ago
:::::: commit date: 2 days ago
config: arm64-randconfig-r071-20240901 (https://download.01.org/0day-ci/archive/20240901/202409011336.XWDZbc4n-lkp@intel.com/config)
compiler: aarch64-linux-gcc (GCC) 14.1.0
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Reported-by: Dan Carpenter <error27@gmail.com>
| Closes: https://lore.kernel.org/r/202409011336.XWDZbc4n-lkp@intel.com/
New smatch warnings:
mm/msync.c:90 __do_sys_msync() warn: comparison of a potentially tagged address (__do_sys_msync, -2, __UNIQUE_ID_x_562)
mm/msync.c:90 __do_sys_msync() warn: comparison of a potentially tagged address (__do_sys_msync, -2, __UNIQUE_ID_x_562)
fs/userfaultfd.c:1479 userfaultfd_unregister() warn: comparison of a potentially tagged address (userfaultfd_unregister, -2, __UNIQUE_ID_x_620)
Old smatch warnings:
fs/userfaultfd.c:1317 userfaultfd_register() warn: comparison of a potentially tagged address (userfaultfd_register, -2, end)
fs/userfaultfd.c:1459 userfaultfd_unregister() warn: comparison of a potentially tagged address (userfaultfd_unregister, -2, start)
fs/userfaultfd.c:1477 userfaultfd_unregister() warn: comparison of a potentially tagged address (userfaultfd_unregister, -2, start)
vim +90 mm/msync.c
^1da177e4c3f41 Linus Torvalds 2005-04-16 17
^1da177e4c3f41 Linus Torvalds 2005-04-16 18 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 19 * MS_SYNC syncs the entire file - including mappings.
^1da177e4c3f41 Linus Torvalds 2005-04-16 20 *
204ec841fbea3e Peter Zijlstra 2006-09-25 21 * MS_ASYNC does not start I/O (it used to, up to 2.5.67).
204ec841fbea3e Peter Zijlstra 2006-09-25 22 * Nor does it marks the relevant pages dirty (it used to up to 2.6.17).
204ec841fbea3e Peter Zijlstra 2006-09-25 23 * Now it doesn't do anything, since dirty pages are properly tracked.
204ec841fbea3e Peter Zijlstra 2006-09-25 24 *
204ec841fbea3e Peter Zijlstra 2006-09-25 25 * The application may now run fsync() to
^1da177e4c3f41 Linus Torvalds 2005-04-16 26 * write out the dirty pages and wait on the writeout and check the result.
^1da177e4c3f41 Linus Torvalds 2005-04-16 27 * Or the application may run fadvise(FADV_DONTNEED) against the fd to start
^1da177e4c3f41 Linus Torvalds 2005-04-16 28 * async writeout immediately.
16538c40776b8b Amos Waterland 2006-03-24 29 * So by _not_ starting I/O in MS_ASYNC we provide complete flexibility to
^1da177e4c3f41 Linus Torvalds 2005-04-16 30 * applications.
^1da177e4c3f41 Linus Torvalds 2005-04-16 31 */
6a6160a7b5c27b Heiko Carstens 2009-01-14 32 SYSCALL_DEFINE3(msync, unsigned long, start, size_t, len, int, flags)
^1da177e4c3f41 Linus Torvalds 2005-04-16 33 {
^1da177e4c3f41 Linus Torvalds 2005-04-16 34 unsigned long end;
204ec841fbea3e Peter Zijlstra 2006-09-25 35 struct mm_struct *mm = current->mm;
^1da177e4c3f41 Linus Torvalds 2005-04-16 36 struct vm_area_struct *vma;
676758bdb7bfca Andrew Morton 2006-03-24 37 int unmapped_error = 0;
676758bdb7bfca Andrew Morton 2006-03-24 38 int error = -EINVAL;
^1da177e4c3f41 Linus Torvalds 2005-04-16 39
057d3389108eda Andrey Konovalov 2019-09-25 40 start = untagged_addr(start);
057d3389108eda Andrey Konovalov 2019-09-25 41
^1da177e4c3f41 Linus Torvalds 2005-04-16 42 if (flags & ~(MS_ASYNC | MS_INVALIDATE | MS_SYNC))
^1da177e4c3f41 Linus Torvalds 2005-04-16 43 goto out;
b0d61c7e56815b Alexander Kuleshov 2015-11-05 44 if (offset_in_page(start))
^1da177e4c3f41 Linus Torvalds 2005-04-16 45 goto out;
^1da177e4c3f41 Linus Torvalds 2005-04-16 46 if ((flags & MS_ASYNC) && (flags & MS_SYNC))
^1da177e4c3f41 Linus Torvalds 2005-04-16 47 goto out;
^1da177e4c3f41 Linus Torvalds 2005-04-16 48 error = -ENOMEM;
^1da177e4c3f41 Linus Torvalds 2005-04-16 49 len = (len + ~PAGE_MASK) & PAGE_MASK;
^1da177e4c3f41 Linus Torvalds 2005-04-16 50 end = start + len;
^1da177e4c3f41 Linus Torvalds 2005-04-16 51 if (end < start)
^1da177e4c3f41 Linus Torvalds 2005-04-16 52 goto out;
^1da177e4c3f41 Linus Torvalds 2005-04-16 53 error = 0;
^1da177e4c3f41 Linus Torvalds 2005-04-16 54 if (end == start)
^1da177e4c3f41 Linus Torvalds 2005-04-16 55 goto out;
^1da177e4c3f41 Linus Torvalds 2005-04-16 56 /*
^1da177e4c3f41 Linus Torvalds 2005-04-16 57 * If the interval [start,end) covers some unmapped address ranges,
f6899bc03cbadc Nikita Ermakov 2021-04-29 58 * just ignore them, but return -ENOMEM at the end. Besides, if the
f6899bc03cbadc Nikita Ermakov 2021-04-29 59 * flag is MS_ASYNC (w/o MS_INVALIDATE) the result would be -ENOMEM
f6899bc03cbadc Nikita Ermakov 2021-04-29 60 * anyway and there is nothing left to do, so return immediately.
^1da177e4c3f41 Linus Torvalds 2005-04-16 61 */
d8ed45c5dcd455 Michel Lespinasse 2020-06-08 62 mmap_read_lock(mm);
204ec841fbea3e Peter Zijlstra 2006-09-25 63 vma = find_vma(mm, start);
204ec841fbea3e Peter Zijlstra 2006-09-25 64 for (;;) {
9c50823eebf7c2 Andrew Morton 2006-03-24 65 struct file *file;
7fc34a62ca4434 Matthew Wilcox 2014-06-04 66 loff_t fstart, fend;
9c50823eebf7c2 Andrew Morton 2006-03-24 67
204ec841fbea3e Peter Zijlstra 2006-09-25 68 /* Still start < end. */
204ec841fbea3e Peter Zijlstra 2006-09-25 69 error = -ENOMEM;
204ec841fbea3e Peter Zijlstra 2006-09-25 70 if (!vma)
204ec841fbea3e Peter Zijlstra 2006-09-25 71 goto out_unlock;
^1da177e4c3f41 Linus Torvalds 2005-04-16 72 /* Here start < vma->vm_end. */
^1da177e4c3f41 Linus Torvalds 2005-04-16 73 if (start < vma->vm_start) {
f6899bc03cbadc Nikita Ermakov 2021-04-29 74 if (flags == MS_ASYNC)
f6899bc03cbadc Nikita Ermakov 2021-04-29 75 goto out_unlock;
^1da177e4c3f41 Linus Torvalds 2005-04-16 76 start = vma->vm_start;
204ec841fbea3e Peter Zijlstra 2006-09-25 77 if (start >= end)
9c50823eebf7c2 Andrew Morton 2006-03-24 78 goto out_unlock;
204ec841fbea3e Peter Zijlstra 2006-09-25 79 unmapped_error = -ENOMEM;
^1da177e4c3f41 Linus Torvalds 2005-04-16 80 }
204ec841fbea3e Peter Zijlstra 2006-09-25 81 /* Here vma->vm_start <= start < vma->vm_end. */
204ec841fbea3e Peter Zijlstra 2006-09-25 82 if ((flags & MS_INVALIDATE) &&
204ec841fbea3e Peter Zijlstra 2006-09-25 83 (vma->vm_flags & VM_LOCKED)) {
204ec841fbea3e Peter Zijlstra 2006-09-25 84 error = -EBUSY;
9c50823eebf7c2 Andrew Morton 2006-03-24 85 goto out_unlock;
9c50823eebf7c2 Andrew Morton 2006-03-24 86 }
9c50823eebf7c2 Andrew Morton 2006-03-24 87 file = vma->vm_file;
496a8e68654a5f Namjae Jeon 2014-07-02 88 fstart = (start - vma->vm_start) +
496a8e68654a5f Namjae Jeon 2014-07-02 89 ((loff_t)vma->vm_pgoff << PAGE_SHIFT);
7fc34a62ca4434 Matthew Wilcox 2014-06-04 @90 fend = fstart + (min(end, vma->vm_end) - start) - 1;
:::::: The code at line 90 was first introduced by commit
:::::: 7fc34a62ca4434a79c68e23e70ed26111b7a4cf8 mm/msync.c: sync only the requested range in msync()
:::::: TO: Matthew Wilcox <matthew.r.wilcox@intel.com>
:::::: CC: Linus Torvalds <torvalds@linux-foundation.org>
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
reply other threads:[~2024-09-01 5:46 UTC|newest]
Thread overview: [no followups] expand[flat|nested] mbox.gz Atom feed
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=202409011336.XWDZbc4n-lkp@intel.com \
--to=lkp@intel.com \
--cc=error27@gmail.com \
--cc=oe-kbuild@lists.linux.dev \
/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.