return 0;
 }
 
-static int perf_header__read_pipe(struct perf_session *session, int fd)
+static int perf_header__read_pipe(struct perf_session *session)
 {
        struct perf_header *header = &session->header;
        struct perf_pipe_file_header f_header;
 
-       if (perf_file_header__read_pipe(&f_header, header, fd,
+       if (perf_file_header__read_pipe(&f_header, header, session->fd,
                                        session->repipe) < 0) {
                pr_debug("incompatible file format\n");
                return -EINVAL;
        }
 
-       session->fd = fd;
-
        return 0;
 }
 
        return 0;
 }
 
-int perf_session__read_header(struct perf_session *session, int fd)
+int perf_session__read_header(struct perf_session *session)
 {
        struct perf_header *header = &session->header;
        struct perf_file_header f_header;
        struct perf_file_attr   f_attr;
        u64                     f_id;
        int nr_attrs, nr_ids, i, j;
+       int fd = session->fd;
 
        session->evlist = perf_evlist__new();
        if (session->evlist == NULL)
                return -ENOMEM;
 
        if (session->fd_pipe)
-               return perf_header__read_pipe(session, fd);
+               return perf_header__read_pipe(session);
 
        if (perf_file_header__read(&f_header, header, fd) < 0)
                return -EINVAL;
 
 struct perf_evlist;
 struct perf_session;
 
-int perf_session__read_header(struct perf_session *session, int fd);
+int perf_session__read_header(struct perf_session *session);
 int perf_session__write_header(struct perf_session *session,
                               struct perf_evlist *evlist,
                               int fd, bool at_exit);
 
                self->fd_pipe = true;
                self->fd = STDIN_FILENO;
 
-               if (perf_session__read_header(self, self->fd) < 0)
+               if (perf_session__read_header(self) < 0)
                        pr_err("incompatible file format (rerun with -v to learn more)");
 
                return 0;
                goto out_close;
        }
 
-       if (perf_session__read_header(self, self->fd) < 0) {
+       if (perf_session__read_header(self) < 0) {
                pr_err("incompatible file format (rerun with -v to learn more)");
                goto out_close;
        }