Merge branch 'akpm' (patches from Andrew)
[linux-2.6-microblaze.git] / tools / perf / util / header.c
index 4424902..1c7414f 100644 (file)
@@ -278,7 +278,7 @@ static int do_read_bitmap(struct feat_fd *ff, unsigned long **pset, u64 *psize)
        if (ret)
                return ret;
 
-       set = bitmap_alloc(size);
+       set = bitmap_zalloc(size);
        if (!set)
                return -ENOMEM;
 
@@ -1284,7 +1284,7 @@ static int memory_node__read(struct memory_node *n, unsigned long idx)
 
        dir = opendir(path);
        if (!dir) {
-               pr_warning("failed: cant' open memory sysfs data\n");
+               pr_warning("failed: can't open memory sysfs data\n");
                return -1;
        }
 
@@ -1294,7 +1294,7 @@ static int memory_node__read(struct memory_node *n, unsigned long idx)
 
        size++;
 
-       n->set = bitmap_alloc(size);
+       n->set = bitmap_zalloc(size);
        if (!n->set) {
                closedir(dir);
                return -ENOMEM;
@@ -3865,10 +3865,10 @@ static int perf_file_section__process(struct perf_file_section *section,
 static int perf_file_header__read_pipe(struct perf_pipe_file_header *header,
                                       struct perf_header *ph,
                                       struct perf_data* data,
-                                      bool repipe)
+                                      bool repipe, int repipe_fd)
 {
        struct feat_fd ff = {
-               .fd = STDOUT_FILENO,
+               .fd = repipe_fd,
                .ph = ph,
        };
        ssize_t ret;
@@ -3891,13 +3891,13 @@ static int perf_file_header__read_pipe(struct perf_pipe_file_header *header,
        return 0;
 }
 
-static int perf_header__read_pipe(struct perf_session *session)
+static int perf_header__read_pipe(struct perf_session *session, int repipe_fd)
 {
        struct perf_header *header = &session->header;
        struct perf_pipe_file_header f_header;
 
        if (perf_file_header__read_pipe(&f_header, header, session->data,
-                                       session->repipe) < 0) {
+                                       session->repipe, repipe_fd) < 0) {
                pr_debug("incompatible file format\n");
                return -EINVAL;
        }
@@ -3995,7 +3995,7 @@ static int evlist__prepare_tracepoint_events(struct evlist *evlist, struct tep_h
        return 0;
 }
 
-int perf_session__read_header(struct perf_session *session)
+int perf_session__read_header(struct perf_session *session, int repipe_fd)
 {
        struct perf_data *data = session->data;
        struct perf_header *header = &session->header;
@@ -4016,7 +4016,7 @@ int perf_session__read_header(struct perf_session *session)
         * We can read 'pipe' data event from regular file,
         * check for the pipe header regardless of source.
         */
-       err = perf_header__read_pipe(session);
+       err = perf_header__read_pipe(session, repipe_fd);
        if (!err || perf_data__is_pipe(data)) {
                data->is_pipe = true;
                return err;