diff options
| author | Ingo Molnar <mingo@kernel.org> | 2018-05-14 09:02:14 +0200 |
|---|---|---|
| committer | Ingo Molnar <mingo@kernel.org> | 2018-05-14 09:02:14 +0200 |
| commit | dfd5c3ea641b1697333e5f6704e4e5dddfafe86b (patch) | |
| tree | 5eab12757acaec0f7ff07a48f4b66140b78eb969 /kernel/events/ring_buffer.c | |
| parent | sched/core: Don't schedule threads on pre-empted vCPUs (diff) | |
| parent | Linux 4.17-rc5 (diff) | |
| download | linux-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.c | 7 |
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); |
