diff options
| -rw-r--r-- | tools/perf/util/evlist.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c index 99b43dd18c57..8065ce8fa9a5 100644 --- a/tools/perf/util/evlist.c +++ b/tools/perf/util/evlist.c | |||
| @@ -821,6 +821,7 @@ int perf_evlist__prepare_workload(struct perf_evlist *evlist, | |||
| 821 | goto out_close_pipes; | 821 | goto out_close_pipes; |
| 822 | } | 822 | } |
| 823 | 823 | ||
| 824 | fcntl(go_pipe[1], F_SETFD, FD_CLOEXEC); | ||
| 824 | evlist->workload.cork_fd = go_pipe[1]; | 825 | evlist->workload.cork_fd = go_pipe[1]; |
| 825 | close(child_ready_pipe[0]); | 826 | close(child_ready_pipe[0]); |
| 826 | return 0; | 827 | return 0; |
| @@ -837,10 +838,17 @@ out_close_ready_pipe: | |||
| 837 | int perf_evlist__start_workload(struct perf_evlist *evlist) | 838 | int perf_evlist__start_workload(struct perf_evlist *evlist) |
| 838 | { | 839 | { |
| 839 | if (evlist->workload.cork_fd > 0) { | 840 | if (evlist->workload.cork_fd > 0) { |
| 841 | char bf; | ||
| 842 | int ret; | ||
| 840 | /* | 843 | /* |
| 841 | * Remove the cork, let it rip! | 844 | * Remove the cork, let it rip! |
| 842 | */ | 845 | */ |
| 843 | return close(evlist->workload.cork_fd); | 846 | ret = write(evlist->workload.cork_fd, &bf, 1); |
| 847 | if (ret < 0) | ||
| 848 | perror("enable to write to pipe"); | ||
| 849 | |||
| 850 | close(evlist->workload.cork_fd); | ||
| 851 | return ret; | ||
| 844 | } | 852 | } |
| 845 | 853 | ||
| 846 | return 0; | 854 | return 0; |
