diff options
| author | Oleg Nesterov <[email protected]> | 2012-08-08 15:11:42 +0000 |
|---|---|---|
| committer | Oleg Nesterov <[email protected]> | 2012-08-28 16:21:18 +0000 |
| commit | f8ac4ec9c064b330dcc49e03c450fe74298c4622 (patch) | |
| tree | 62d53120d0289719438d27de5f868c36e136ed28 /arch/powerpc/lib/code-patching.c | |
| parent | uprobes: Do not use -EEXIST in install_breakpoint() paths (diff) | |
| download | kernel-f8ac4ec9c064b330dcc49e03c450fe74298c4622.tar.gz kernel-f8ac4ec9c064b330dcc49e03c450fe74298c4622.zip | |
uprobes: Introduce MMF_HAS_UPROBES
Add the new MMF_HAS_UPROBES flag. It is set by install_breakpoint()
and it is copied by dup_mmap(), uprobe_pre_sstep_notifier() checks
it to avoid the slow path if the task was never probed. Perhaps it
makes sense to check it in valid_vma(is_register => false) as well.
This needs the new dup_mmap()->uprobe_dup_mmap() hook. We can't use
uprobe_reset_state() or put MMF_HAS_UPROBES into MMF_INIT_MASK, we
need oldmm->mmap_sem to avoid the race with uprobe_register() or
mmap() from another thread.
Currently we never clear this bit, it can be false-positive after
uprobe_unregister() or uprobe_munmap() or if dup_mmap() hits the
probed VM_DONTCOPY vma. But this is fine correctness-wise and has
no effect unless the task hits the non-uprobe breakpoint.
Signed-off-by: Oleg Nesterov <[email protected]>
Acked-by: Srikar Dronamraju <[email protected]>
Diffstat (limited to 'arch/powerpc/lib/code-patching.c')
0 files changed, 0 insertions, 0 deletions
