* perf_mmap__read_done()
  */
 union perf_event *perf_mmap__read_event(struct perf_mmap *map,
-                                       bool overwrite,
-                                       u64 *startp, u64 end)
+                                       bool overwrite __maybe_unused,
+                                       u64 *startp __maybe_unused,
+                                       u64 end __maybe_unused)
 {
        union perf_event *event;
 
        if (!refcount_read(&map->refcnt))
                return NULL;
 
-       if (startp == NULL)
-               return NULL;
-
        /* non-overwirte doesn't pause the ringbuffer */
-       if (!overwrite)
-               end = perf_mmap__read_head(map);
+       if (!map->overwrite)
+               map->end = perf_mmap__read_head(map);
 
-       event = perf_mmap__read(map, startp, end);
+       event = perf_mmap__read(map, &map->start, map->end);
 
-       if (!overwrite)
-               map->prev = *startp;
+       if (!map->overwrite)
+               map->prev = map->start;
 
        return event;
 }