Message ID | 20241028010818.2487581-4-andrii@kernel.org (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | uprobes,mm: speculative lockless VMA-to-uprobe lookup | expand |
On Sun, 27 Oct 2024 18:08:17 -0700 Andrii Nakryiko <andrii@kernel.org> wrote: > At the point where find_active_uprobe_rcu() is used we know that VMA in > question has triggered software breakpoint, so we don't need to validate > vma->vm_flags. Keep only vma->vm_file NULL check. > Looks good to me. Reviewed-by: Masami Hiramatsu (Google) <mhiramat@kernel.org> Thanks, > Acked-by: Oleg Nesterov <oleg@redhat.com> > Suggested-by: Oleg Nesterov <oleg@redhat.com> > Signed-off-by: Andrii Nakryiko <andrii@kernel.org> > --- > kernel/events/uprobes.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c > index 4ef4b51776eb..290c445768fa 100644 > --- a/kernel/events/uprobes.c > +++ b/kernel/events/uprobes.c > @@ -2084,7 +2084,7 @@ static struct uprobe *find_active_uprobe_rcu(unsigned long bp_vaddr, int *is_swb > mmap_read_lock(mm); > vma = vma_lookup(mm, bp_vaddr); > if (vma) { > - if (valid_vma(vma, false)) { > + if (vma->vm_file) { > struct inode *inode = file_inode(vma->vm_file); > loff_t offset = vaddr_to_offset(vma, bp_vaddr); > > -- > 2.43.5 >
diff --git a/kernel/events/uprobes.c b/kernel/events/uprobes.c index 4ef4b51776eb..290c445768fa 100644 --- a/kernel/events/uprobes.c +++ b/kernel/events/uprobes.c @@ -2084,7 +2084,7 @@ static struct uprobe *find_active_uprobe_rcu(unsigned long bp_vaddr, int *is_swb mmap_read_lock(mm); vma = vma_lookup(mm, bp_vaddr); if (vma) { - if (valid_vma(vma, false)) { + if (vma->vm_file) { struct inode *inode = file_inode(vma->vm_file); loff_t offset = vaddr_to_offset(vma, bp_vaddr);