Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull perf fixes from Ingo Molnar: "This tree contains misc fixlets: a perf script python binding fix, a uprobes fix and a syscall tracing fix." * 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf tools: Add missing files to build the python binding uprobes: Fix mmap_region()'s mm->mm_rb corruption if uprobe_mmap() fails tracing/syscalls: Fix perf syscall tracing when syscall_nr == -1
This commit is contained in:
commit
7ca63ee1b0
4 changed files with 10 additions and 5 deletions
|
@ -455,8 +455,8 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm)
|
||||||
if (retval)
|
if (retval)
|
||||||
goto out;
|
goto out;
|
||||||
|
|
||||||
if (file && uprobe_mmap(tmp))
|
if (file)
|
||||||
goto out;
|
uprobe_mmap(tmp);
|
||||||
}
|
}
|
||||||
/* a new mm has just been created */
|
/* a new mm has just been created */
|
||||||
arch_dup_mmap(oldmm, mm);
|
arch_dup_mmap(oldmm, mm);
|
||||||
|
|
|
@ -506,6 +506,8 @@ static void perf_syscall_enter(void *ignore, struct pt_regs *regs, long id)
|
||||||
int size;
|
int size;
|
||||||
|
|
||||||
syscall_nr = syscall_get_nr(current, regs);
|
syscall_nr = syscall_get_nr(current, regs);
|
||||||
|
if (syscall_nr < 0)
|
||||||
|
return;
|
||||||
if (!test_bit(syscall_nr, enabled_perf_enter_syscalls))
|
if (!test_bit(syscall_nr, enabled_perf_enter_syscalls))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
@ -580,6 +582,8 @@ static void perf_syscall_exit(void *ignore, struct pt_regs *regs, long ret)
|
||||||
int size;
|
int size;
|
||||||
|
|
||||||
syscall_nr = syscall_get_nr(current, regs);
|
syscall_nr = syscall_get_nr(current, regs);
|
||||||
|
if (syscall_nr < 0)
|
||||||
|
return;
|
||||||
if (!test_bit(syscall_nr, enabled_perf_exit_syscalls))
|
if (!test_bit(syscall_nr, enabled_perf_exit_syscalls))
|
||||||
return;
|
return;
|
||||||
|
|
||||||
|
|
|
@ -1356,9 +1356,8 @@ unsigned long mmap_region(struct file *file, unsigned long addr,
|
||||||
} else if ((flags & MAP_POPULATE) && !(flags & MAP_NONBLOCK))
|
} else if ((flags & MAP_POPULATE) && !(flags & MAP_NONBLOCK))
|
||||||
make_pages_present(addr, addr + len);
|
make_pages_present(addr, addr + len);
|
||||||
|
|
||||||
if (file && uprobe_mmap(vma))
|
if (file)
|
||||||
/* matching probes but cannot insert */
|
uprobe_mmap(vma);
|
||||||
goto unmap_and_free_vma;
|
|
||||||
|
|
||||||
return addr;
|
return addr;
|
||||||
|
|
||||||
|
|
|
@ -10,10 +10,12 @@ util/ctype.c
|
||||||
util/evlist.c
|
util/evlist.c
|
||||||
util/evsel.c
|
util/evsel.c
|
||||||
util/cpumap.c
|
util/cpumap.c
|
||||||
|
util/hweight.c
|
||||||
util/thread_map.c
|
util/thread_map.c
|
||||||
util/util.c
|
util/util.c
|
||||||
util/xyarray.c
|
util/xyarray.c
|
||||||
util/cgroup.c
|
util/cgroup.c
|
||||||
util/debugfs.c
|
util/debugfs.c
|
||||||
|
util/rblist.c
|
||||||
util/strlist.c
|
util/strlist.c
|
||||||
../../lib/rbtree.c
|
../../lib/rbtree.c
|
||||||
|
|
Loading…
Reference in a new issue