linux/fs
Muhammad Usama Anjum 4cccb6221c fs/proc/task_mmu: move mmu notification mechanism inside mm lock
Move mmu notification mechanism inside mm lock to prevent race condition
in other components which depend on it.  The notifier will invalidate
memory range.  Depending upon the number of iterations, different memory
ranges would be invalidated.

The following warning would be removed by this patch:
WARNING: CPU: 0 PID: 5067 at arch/x86/kvm/../../../virt/kvm/kvm_main.c:734 kvm_mmu_notifier_change_pte+0x860/0x960 arch/x86/kvm/../../../virt/kvm/kvm_main.c:734

There is no behavioural and performance change with this patch when
there is no component registered with the mmu notifier.

[akpm@linux-foundation.org: narrow the scope of `range', per Sean]
Link: https://lkml.kernel.org/r/20240109112445.590736-1-usama.anjum@collabora.com
Fixes: 52526ca7fd ("fs/proc/task_mmu: implement IOCTL to get and optionally clear info about PTEs")
Signed-off-by: Muhammad Usama Anjum <usama.anjum@collabora.com>
Reported-by: syzbot+81227d2bd69e9dedb802@syzkaller.appspotmail.com
Link: https://lore.kernel.org/all/000000000000f6d051060c6785bc@google.com/
Reviewed-by: Sean Christopherson <seanjc@google.com>
Cc: Andrei Vagin <avagin@google.com>
Cc: Arnd Bergmann <arnd@arndb.de>
Cc: David Hildenbrand <david@redhat.com>
Cc: Hugh Dickins <hughd@google.com>
Cc: Kefeng Wang <wangkefeng.wang@huawei.com>
Cc: Liam R. Howlett <Liam.Howlett@oracle.com>
Cc: Michał Mirosław <mirq-linux@rere.qmqm.pl>
Cc: Peter Xu <peterx@redhat.com>
Cc: Ryan Roberts <ryan.roberts@arm.com>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>
Cc: Suren Baghdasaryan <surenb@google.com>
Cc: <stable@vger.kernel.org>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
2024-01-12 15:20:46 -08:00
..
9p Bunch of small fixes: 2023-11-04 09:20:04 -10:00
adfs adfs: remove writepage implementation 2023-12-29 11:58:33 -08:00
affs vfs-6.7.fsid 2023-11-07 12:11:26 -08:00
afs Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
autofs autofs: add: new_inode check in autofs_fill_super() 2023-11-20 14:56:36 +01:00
bcachefs Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
befs vfs-6.7.fsid 2023-11-07 12:11:26 -08:00
bfs bfs: remove writepage implementation 2023-12-29 11:58:34 -08:00
btrfs Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
cachefiles vfs-6.8.cachefiles 2024-01-08 11:26:50 -08:00
ceph Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
coda fs: move file_start_write() into vfs_iter_write() 2023-11-24 10:09:51 +01:00
configfs
cramfs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
crypto This update includes the following changes: 2023-11-02 16:15:30 -10:00
debugfs Merge branches 'acpi-pm', 'acpi-video', 'acpi-apei' and 'acpi-extlog' 2024-01-04 13:19:40 +01:00
devpts
dlm
ecryptfs fs: Pass AT_GETATTR_NOSEC flag to getattr interface function 2023-11-18 14:54:07 +01:00
efivarfs efivarfs: automatically update super block flag 2023-12-11 11:19:18 +01:00
efs vfs-6.7.fsid 2023-11-07 12:11:26 -08:00
erofs MAINTAINERS: erofs: add EROFS webpage 2023-11-17 19:55:46 +08:00
exfat exfat: fix ctime is not updated 2023-11-03 22:24:11 +09:00
exportfs fs: fix build error with CONFIG_EXPORTFS=m or not defined 2023-10-28 16:16:19 +02:00
ext2 fs: convert error_remove_page to error_remove_folio 2023-12-10 16:51:42 -08:00
ext4 Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
f2fs Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
fat vfs-6.7.fsid 2023-11-07 12:11:26 -08:00
freevxfs freevxfs: lookup: fix function params kernel-doc 2023-12-20 15:02:58 -08:00
fscache
fuse vfs-6.8.rw 2024-01-08 11:11:51 -08:00
gfs2 Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
hfs hfs: really remove hfs_writepage 2023-12-29 11:58:34 -08:00
hfsplus Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
hostfs
hpfs
hugetlbfs Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
iomap mm: add folio_fill_tail() and use it in iomap 2023-12-10 16:51:36 -08:00
isofs
jbd2 jbd2: fix soft lockup in journal_finish_inode_data_buffers() 2023-12-12 10:25:46 -05:00
jffs2 jffs2: mark __jffs2_dbg_superblock_counts() static 2023-12-10 17:21:43 -08:00
jfs vfs-6.7.fsid 2023-11-07 12:11:26 -08:00
kernfs Driver core changes for 6.7-rc1 2023-11-03 15:15:47 -10:00
lockd
minix minix: remove writepage implementation 2023-12-29 11:58:34 -08:00
netfs
nfs Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
nfs_common
nfsd Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
nilfs2 Quite a lot of kexec work this time around. Many singleton patches in 2024-01-09 11:46:20 -08:00
nls
notify vfs-6.7.fsid 2023-11-07 12:11:26 -08:00
ntfs Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
ntfs3 vfs-6.7.fsid 2023-11-07 12:11:26 -08:00
ocfs2 fs: convert block_write_full_page to block_write_full_folio 2023-12-29 11:58:35 -08:00
omfs
openpromfs
orangefs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
overlayfs integrity-v6.8 2024-01-09 13:24:06 -08:00
proc fs/proc/task_mmu: move mmu notification mechanism inside mm lock 2024-01-12 15:20:46 -08:00
pstore pstore updates for v6.7-rc1 2023-10-30 19:26:39 -10:00
qnx4
qnx6
quota Many singleton patches against the MM code. The patch series which are 2023-11-02 19:38:47 -10:00
ramfs mm, treewide: rename MAX_ORDER to MAX_PAGE_ORDER 2024-01-08 15:27:15 -08:00
reiserfs reiserfs: fix uninit-value in comp_keys 2023-12-28 11:56:52 +01:00
romfs vfs-6.7.ctime 2023-10-30 09:47:13 -10:00
smb Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
squashfs Squashfs: fix variable overflow triggered by sysbot 2023-12-10 17:21:26 -08:00
sysfs
sysv sysv: remove writepage implementation 2023-12-29 11:58:35 -08:00
tracefs eventfs: Fix bitwise fields for "is_events" 2024-01-02 15:20:44 -05:00
ubifs This pull request contains updates for UBI and UBIFS 2023-11-05 08:28:32 -10:00
udf \n 2023-11-02 08:19:51 -10:00
ufs Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
unicode
vboxsf
verity
xfs Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
zonefs fs: convert error_remove_page to error_remove_folio 2023-12-10 16:51:42 -08:00
aio.c vfs-6.8.iov_iter 2024-01-08 11:43:04 -08:00
anon_inodes.c
attr.c fs: fix doc comment typo fs tree wide 2023-12-21 13:17:54 +01:00
backing-file.c fs: factor out backing_file_mmap() helper 2023-12-23 16:35:09 +02:00
bad_inode.c
binfmt_elf_fdpic.c execve updates for v6.7-rc1 2023-10-30 19:28:19 -10:00
binfmt_elf_test.c
binfmt_elf.c
binfmt_flat.c
binfmt_misc.c execve updates for v6.7-rc1 2023-10-30 19:28:19 -10:00
binfmt_script.c
buffer.c Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
char_dev.c As usual, lots of singleton and doubleton patches all over the tree and 2023-11-02 20:53:31 -10:00
compat_binfmt_elf.c
coredump.c
d_path.c
dax.c fs : Fix warning using plain integer as NULL 2023-11-18 15:00:01 +01:00
dcache.c list_lru: allow explicit memcg and NUMA node selection 2023-12-12 10:57:01 -08:00
direct-io.c fs : Fix warning using plain integer as NULL 2023-11-18 15:00:01 +01:00
drop_caches.c
eventfd.c eventfd: Remove usage of the deprecated ida_simple_xx() API 2023-12-12 14:24:55 +01:00
eventpoll.c
exec.c introduce for_other_threads(p, t) 2023-12-10 17:21:25 -08:00
fcntl.c
fhandle.c exportfs: add helpers to check if filesystem can encode/decode file handles 2023-10-24 17:57:45 +02:00
file_table.c fs: replace f_rcuhead with f_task_work 2023-12-12 14:24:13 +01:00
file.c file: remove __receive_fd() 2023-12-12 14:24:14 +01:00
filesystems.c
fs_context.c
fs_parser.c
fs_pin.c
fs_struct.c
fs_types.c
fs-writeback.c vfs-6.7.misc 2023-10-30 09:14:19 -10:00
fsopen.c
init.c
inode.c Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
internal.h vfs-6.8.rw 2024-01-08 11:11:51 -08:00
ioctl.c lsm: new security_file_ioctl_compat() hook 2023-12-24 15:48:03 -05:00
Kconfig Many singleton patches against the MM code. The patch series which 2024-01-09 11:18:47 -08:00
Kconfig.binfmt
kernel_read_file.c
libfs.c libfs: getdents() should return 0 after reaching EOD 2023-11-20 15:34:22 +01:00
locks.c As usual, lots of singleton and doubleton patches all over the tree and 2023-11-02 20:53:31 -10:00
Makefile fs: prepare for stackable filesystems backing file helpers 2023-12-23 16:35:08 +02:00
mbcache.c
mnt_idmapping.c mnt_idmapping: decouple from namespaces 2023-11-28 14:08:47 +01:00
mount.h mounts: keep list of mounts in an rbtree 2023-11-18 14:56:16 +01:00
mpage.c fs: convert block_write_full_page to block_write_full_folio 2023-12-29 11:58:35 -08:00
namei.c Merge branch 'vfs.file' 2023-12-21 13:21:52 +01:00
namespace.c vfs-6.8.mount 2024-01-08 10:57:34 -08:00
nsfs.c
open.c vfs-6.8.rw 2024-01-08 11:11:51 -08:00
pipe.c pipe: wakeup wr_wait after setting max_usage 2023-12-12 14:24:54 +01:00
pnode.c mounts: keep list of mounts in an rbtree 2023-11-18 14:56:16 +01:00
pnode.h
posix_acl.c fs: fix doc comment typo fs tree wide 2023-12-21 13:17:54 +01:00
proc_namespace.c namespace: extract show_path() helper 2023-11-18 14:56:16 +01:00
read_write.c fsnotify: optionally pass access range in file permission hooks 2023-12-12 16:20:02 +01:00
readdir.c fsnotify: optionally pass access range in file permission hooks 2023-12-12 16:20:02 +01:00
remap_range.c fsnotify: optionally pass access range in file permission hooks 2023-12-12 16:20:02 +01:00
select.c
seq_file.c
signalfd.c
splice.c fs: use splice_copy_file_range() inline helper 2023-12-12 16:20:02 +01:00
stack.c
stat.c vfs-6.8.mount 2024-01-08 10:57:34 -08:00
statfs.c
super.c vfs-6.8.super 2024-01-08 10:43:51 -08:00
sync.c
sysctls.c
timerfd.c
userfaultfd.c userfaultfd: UFFDIO_MOVE uABI 2023-12-29 11:58:24 -08:00
utimes.c
xattr.c