Commit 7ca63ee1 authored by Linus Torvalds's avatar Linus Torvalds

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
parents caf1aaf6 f5042d03
...@@ -455,8 +455,8 @@ static int dup_mmap(struct mm_struct *mm, struct mm_struct *oldmm) ...@@ -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) ...@@ -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) ...@@ -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, ...@@ -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 ...@@ -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
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment