From: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
To: Oleg Nesterov <oleg@redhat.com>
Cc: Ingo Molnar <mingo@elte.hu>,
Ananth N Mavinakayanahalli <ananth@in.ibm.com>,
Anton Arapov <anton@redhat.com>,
Peter Zijlstra <peterz@infradead.org>,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 4/5] uprobes: kill copy_vma()->uprobe_mmap()
Date: Fri, 13 Jul 2012 13:43:33 +0530 [thread overview]
Message-ID: <20120713081333.GB4781@linux.vnet.ibm.com> (raw)
In-Reply-To: <20120708203008.GA18236@redhat.com>
* Oleg Nesterov <oleg@redhat.com> [2012-07-08 22:30:08]:
> Kill copy_vma()->uprobe_mmap(new_vma), it is absolutely wrong.
>
> This new_vma was just initialized to represent the new unmapped area,
> [vm_start, vm_end) was returned by get_unmapped_area() in the caller.
>
> This means that uprobe_mmap()->get_user_pages() will fail for sure,
> simply because find_vma() can never succeed. And I verified that
> sys_mremap()->mremap_to() indeed always fails with the wrong ENOMEM
> code if [addr, addr+old_len] is probed.
>
> And why this uprobe_mmap() was added? I believe the intent was wrong.
> Note that the caller is going to do move_page_tables(), all registered
> uprobes are already faulted in, we only change the virtual addresses.
>
> NOTE: However, somehow we need to close the race with uprobe_register()
> which relies on map_info->vaddr. This needs another fix I'll try to do
> later. Probably we need uprobe_mmap() in move_vma() but we can not do
> this right now, this can confuse uprobes_state.counter (which I still
> hope we are going to kill).
>
> Signed-off-by: Oleg Nesterov <oleg@redhat.com>
Acked-by: Srikar Dronamraju <srikar@linux.vnet.ibm.com>
> ---
> mm/mmap.c | 3 ---
> 1 files changed, 0 insertions(+), 3 deletions(-)
>
> diff --git a/mm/mmap.c b/mm/mmap.c
> index 3edfcdf..e5a4614 100644
> --- a/mm/mmap.c
> +++ b/mm/mmap.c
> @@ -2418,9 +2418,6 @@ struct vm_area_struct *copy_vma(struct vm_area_struct **vmap,
> if (new_vma->vm_file) {
> get_file(new_vma->vm_file);
>
> - if (uprobe_mmap(new_vma))
> - goto out_free_mempol;
> -
> if (vma->vm_flags & VM_EXECUTABLE)
> added_exe_file_vma(mm);
> }
> --
> 1.5.5.1
>
next prev parent reply other threads:[~2012-07-13 8:13 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-07-08 20:29 [PATCH 0/5] uprobes: misc fixlets Oleg Nesterov
2012-07-08 20:30 ` [PATCH 1/5] uprobes: uprobe_mmap/munmap needs list_for_each_entry_safe() Oleg Nesterov
2012-07-12 5:59 ` Srikar Dronamraju
2012-07-08 20:30 ` [PATCH 2/5] uprobes: suppress uprobe_munmap() from mmput() Oleg Nesterov
2012-07-09 8:30 ` Peter Zijlstra
2012-07-09 10:09 ` Oleg Nesterov
2012-07-09 10:13 ` Peter Zijlstra
2012-07-09 10:25 ` Srikar Dronamraju
2012-07-12 5:57 ` Srikar Dronamraju
2012-07-08 20:30 ` [PATCH 3/5] uprobes: fix overflow in vma_address/find_active_uprobe Oleg Nesterov
2012-07-08 21:18 ` Joe Perches
2012-07-09 10:54 ` Oleg Nesterov
2012-07-12 5:56 ` Srikar Dronamraju
2012-07-08 20:30 ` [PATCH 4/5] uprobes: kill copy_vma()->uprobe_mmap() Oleg Nesterov
2012-07-09 8:35 ` Peter Zijlstra
2012-07-09 10:39 ` Oleg Nesterov
2012-07-13 8:13 ` Srikar Dronamraju [this message]
2012-07-08 20:30 ` [PATCH 5/5] uprobes: kill insert_vm_struct()->uprobe_mmap() Oleg Nesterov
2012-07-13 8:11 ` Srikar Dronamraju
2012-07-13 13:29 ` Oleg Nesterov
2012-07-13 14:02 ` Srikar Dronamraju
2012-07-13 14:02 ` Srikar Dronamraju
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=20120713081333.GB4781@linux.vnet.ibm.com \
--to=srikar@linux.vnet.ibm.com \
--cc=ananth@in.ibm.com \
--cc=anton@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@elte.hu \
--cc=oleg@redhat.com \
--cc=peterz@infradead.org \
/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.