* [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)
@ 2024-09-01 5:46 kernel test robot
0 siblings, 0 replies; only message in thread
From: kernel test robot @ 2024-09-01 5:46 UTC (permalink / raw)
To: oe-kbuild; +Cc: lkp, Dan Carpenter
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
^ permalink raw reply [flat|nested] only message in thread
only message in thread, other threads:[~2024-09-01 5:46 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-01 5:46 [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) 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.