History

Merge tag 'perf_urgent_for_v5.18_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip

Pull perf fixes from Borislav Petkov: - Add Sapphire Rapids CPU support - Fix a perf vmalloc-ed buffer mapping error (PERF_USE_VMALLOC in use) * tag 'perf_urgent_for_v5.18_rc4' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: perf/x86/cstate: Add SAPPHIRERAPIDS_X CPU support perf/core: Fix perf_mmap fail when CONFIG_PERF_USE_VMALLOC enabled

Linus Torvalds committed 4 years ago

Commit f48ffef2 parents b877ca4 528c9f14 files · +10 −9Browse files

Showing the changes to kernel (3 of 4 files). Show all

Unified · Split

3 files
  1. kernel/events/core.c +1 −1
  2. kernel/events/internal.h +5 −0
  3. kernel/events/ring_buffer.c +0 −5
kernel/events/core.c+1−1
@@ -6247,7 +6247,7 @@ static int perf_mmap(struct file *file, struct vm_area_struct *vma) · 6246 unmodified lines
62476247 again:
62486248 mutex_lock(&event->mmap_mutex);
62496249 if (event->rb) {
6250− if (event->rb->nr_pages != nr_pages) {
6250+ if (data_page_nr(event->rb) != nr_pages) {
62516251 ret = -EINVAL;
62526252 goto unlock;
62536253 }
kernel/events/internal.h+5−0
@@ -116,6 +116,11 @@ static inline int page_order(struct perf_buffer *rb) · 115 unmodified lines
116116 }
117117 #endif
118118
119+static inline int data_page_nr(struct perf_buffer *rb)
120+{
121+ return rb->nr_pages << page_order(rb);
122+}
123+
119124 static inline unsigned long perf_data_size(struct perf_buffer *rb)
120125 {
121126 return rb->nr_pages << (PAGE_SHIFT + page_order(rb));
kernel/events/ring_buffer.c+0−5
@@ -859,11 +859,6 @@ void rb_free(struct perf_buffer *rb) · 858 unmodified lines
859859 }
860860
861861 #else
862−static int data_page_nr(struct perf_buffer *rb)
863−{
864− return rb->nr_pages << page_order(rb);
865−}
866−
867862 static struct page *
868863 __perf_mmap_to_page(struct perf_buffer *rb, unsigned long pgoff)
869864 {