diff options
author | Jonathan Corbet <corbet@lwn.net> | 2018-04-27 17:13:20 -0600 |
---|---|---|
committer | Jonathan Corbet <corbet@lwn.net> | 2018-04-27 17:13:20 -0600 |
commit | ccf2b067948a8f90fc3d7990c57283e7e404d004 (patch) | |
tree | 298e69b6f3e1eef45ac50ba68abe3dd175c4dc8c /kernel/events/callchain.c | |
parent | e27a20f104673f8ada70c5d32430a7f4c577fe95 (diff) | |
parent | 6d08b06e67cd117f6992c46611dfb4ce267cd71e (diff) |
Merge tag 'v4.17-rc2' into docs-next
Merge -rc2 to pick up the changes to
Documentation/core-api/kernel-api.rst that hit mainline via the
networking tree. In their absence, subsequent patches cannot be
applied.
Diffstat (limited to 'kernel/events/callchain.c')
-rw-r--r-- | kernel/events/callchain.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/kernel/events/callchain.c b/kernel/events/callchain.c index 772a43fea825..c187aa3df3c8 100644 --- a/kernel/events/callchain.c +++ b/kernel/events/callchain.c @@ -119,23 +119,20 @@ int get_callchain_buffers(int event_max_stack) goto exit; } - if (count > 1) { - /* If the allocation failed, give up */ - if (!callchain_cpus_entries) - err = -ENOMEM; - /* - * If requesting per event more than the global cap, - * return a different error to help userspace figure - * this out. - * - * And also do it here so that we have &callchain_mutex held. - */ - if (event_max_stack > sysctl_perf_event_max_stack) - err = -EOVERFLOW; + /* + * If requesting per event more than the global cap, + * return a different error to help userspace figure + * this out. + * + * And also do it here so that we have &callchain_mutex held. + */ + if (event_max_stack > sysctl_perf_event_max_stack) { + err = -EOVERFLOW; goto exit; } - err = alloc_callchain_buffers(); + if (count == 1) + err = alloc_callchain_buffers(); exit: if (err) atomic_dec(&nr_callchain_events); |