Merge remote-tracking branch 'torvalds/master' into perf/core
[linux-2.6-microblaze.git] / tools / perf / util / session.c
index e59242c..86145dd 100644 (file)
@@ -2156,6 +2156,7 @@ struct reader {
        u64              data_size;
        u64              data_offset;
        reader_cb_t      process;
+       bool             in_place_update;
 };
 
 static int
@@ -2189,7 +2190,9 @@ reader__process_events(struct reader *rd, struct perf_session *session,
        mmap_prot  = PROT_READ;
        mmap_flags = MAP_SHARED;
 
-       if (session->header.needs_swap) {
+       if (rd->in_place_update) {
+               mmap_prot  |= PROT_WRITE;
+       } else if (session->header.needs_swap) {
                mmap_prot  |= PROT_WRITE;
                mmap_flags = MAP_PRIVATE;
        }
@@ -2275,6 +2278,7 @@ static int __perf_session__process_events(struct perf_session *session)
                .data_size      = session->header.data_size,
                .data_offset    = session->header.data_offset,
                .process        = process_simple,
+               .in_place_update = session->data->in_place_update,
        };
        struct ordered_events *oe = &session->ordered_events;
        struct perf_tool *tool = session->tool;