aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/events/ring_buffer.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2018-05-14 09:02:14 +0200
committerIngo Molnar <mingo@kernel.org>2018-05-14 09:02:14 +0200
commitdfd5c3ea641b1697333e5f6704e4e5dddfafe86b (patch)
tree5eab12757acaec0f7ff07a48f4b66140b78eb969 /kernel/events/ring_buffer.c
parentsched/core: Don't schedule threads on pre-empted vCPUs (diff)
parentLinux 4.17-rc5 (diff)
downloadlinux-dfd5c3ea641b1697333e5f6704e4e5dddfafe86b.tar.gz
linux-dfd5c3ea641b1697333e5f6704e4e5dddfafe86b.zip
Merge tag 'v4.17-rc5' into sched/core, to pick up fixes and dependencies
Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'kernel/events/ring_buffer.c')
-rw-r--r--kernel/events/ring_buffer.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/kernel/events/ring_buffer.c b/kernel/events/ring_buffer.c
index 6c6b3c48db71..1d8ca9ea9979 100644
--- a/kernel/events/ring_buffer.c
+++ b/kernel/events/ring_buffer.c
@@ -14,6 +14,7 @@
#include <linux/slab.h>
#include <linux/circ_buf.h>
#include <linux/poll.h>
+#include <linux/nospec.h>
#include "internal.h"
@@ -867,8 +868,10 @@ perf_mmap_to_page(struct ring_buffer *rb, unsigned long pgoff)
return NULL;
/* AUX space */
- if (pgoff >= rb->aux_pgoff)
- return virt_to_page(rb->aux_pages[pgoff - rb->aux_pgoff]);
+ if (pgoff >= rb->aux_pgoff) {
+ int aux_pgoff = array_index_nospec(pgoff - rb->aux_pgoff, rb->aux_nr_pages);
+ return virt_to_page(rb->aux_pages[aux_pgoff]);
+ }
}
return __perf_mmap_to_page(rb, pgoff);