Replace use of the legacy vm_flags_t flags with vma_flags_t values in the perf mmap and mmap event logic.
No functional change intended. Signed-off-by: Lorenzo Stoakes (ARM) <[email protected]> --- kernel/events/core.c | 26 ++++++++++++++------------ 1 file changed, 14 insertions(+), 12 deletions(-) diff --git a/kernel/events/core.c b/kernel/events/core.c index 457d75ea7142..6bc5dfacfa48 100644 --- a/kernel/events/core.c +++ b/kernel/events/core.c @@ -7224,6 +7224,7 @@ static int map_range(struct perf_buffer *rb, struct vm_area_struct *vma) unsigned long va = vma->vm_start + PAGE_SIZE * pagenum; struct page *page = perf_mmap_to_page(rb, vma_start_pgoff(vma) + pagenum); + vma_flags_t vma_flags = vma->flags; if (page == NULL) { err = -EINVAL; @@ -7231,8 +7232,9 @@ static int map_range(struct perf_buffer *rb, struct vm_area_struct *vma) } /* Map readonly, perf_mmap_pfn_mkwrite() called on write fault. */ + vma_flags_clear(&vma_flags, VMA_SHARED_BIT); err = remap_pfn_range(vma, va, page_to_pfn(page), PAGE_SIZE, - vm_get_page_prot(vma->vm_flags & ~VM_SHARED)); + vma_flags_to_page_prot(vma_flags)); if (err) break; } @@ -7350,7 +7352,7 @@ static int perf_mmap_rb(struct vm_area_struct *vma, struct perf_event *event, if (!perf_mmap_calc_limits(vma, &user_extra, &extra)) return -EPERM; - if (vma->vm_flags & VM_WRITE) + if (vma_test(vma, VMA_WRITE_BIT)) rb_flags |= RING_BUFFER_WRITABLE; rb = rb_alloc(nr_pages, @@ -7431,7 +7433,7 @@ static int perf_mmap_aux(struct vm_area_struct *vma, struct perf_event *event, WARN_ON(!rb && event->rb); - if (vma->vm_flags & VM_WRITE) + if (vma_test(vma, VMA_WRITE_BIT)) rb_flags |= RING_BUFFER_WRITABLE; ret = rb_alloc_aux(rb, event, pgoff_start, nr_pages, @@ -7466,7 +7468,7 @@ static int perf_mmap(struct file *file, struct vm_area_struct *vma) if (event->cpu == -1 && event->attr.inherit) return -EINVAL; - if (!(vma->vm_flags & VM_SHARED)) + if (!vma_test(vma, VMA_SHARED_BIT)) return -EINVAL; ret = security_perf_event_read(event); @@ -9829,7 +9831,7 @@ static int perf_event_mmap_match(struct perf_event *event, { struct perf_mmap_event *mmap_event = data; struct vm_area_struct *vma = mmap_event->vma; - int executable = vma->vm_flags & VM_EXEC; + bool executable = vma_test(vma, VMA_EXEC_BIT); return (!executable && event->attr.mmap_data) || (executable && (event->attr.mmap || event->attr.mmap2)); @@ -9862,7 +9864,7 @@ static void perf_event_mmap_output(struct perf_event *event, if (use_build_id) misc |= PERF_RECORD_MISC_MMAP_BUILD_ID; } - if (!(mmap_event->vma->vm_flags & VM_EXEC)) + if (!vma_test(mmap_event->vma, VMA_EXEC_BIT)) misc |= PERF_RECORD_MISC_MMAP_DATA; perf_event_header__init(&mmap_event->event_id.header, &sample, @@ -9913,19 +9915,19 @@ static void perf_event_mmap_event(struct perf_mmap_event *mmap_event) char *buf = NULL; char *name = NULL; - if (vma->vm_flags & VM_READ) + if (vma_test(vma, VMA_READ_BIT)) prot |= PROT_READ; - if (vma->vm_flags & VM_WRITE) + if (vma_test(vma, VMA_WRITE_BIT)) prot |= PROT_WRITE; - if (vma->vm_flags & VM_EXEC) + if (vma_test(vma, VMA_EXEC_BIT)) prot |= PROT_EXEC; - if (vma->vm_flags & VM_MAYSHARE) + if (vma_test(vma, VMA_MAYSHARE_BIT)) flags = MAP_SHARED; else flags = MAP_PRIVATE; - if (vma->vm_flags & VM_LOCKED) + if (vma_test(vma, VMA_LOCKED_BIT)) flags |= MAP_LOCKED; if (vma_is_hugetlb(vma)) flags |= MAP_HUGETLB; @@ -10091,7 +10093,7 @@ static void perf_addr_filters_adjust(struct vm_area_struct *vma) * Data tracing isn't supported yet and as such there is no need * to keep track of anything that isn't related to executable code: */ - if (!(vma->vm_flags & VM_EXEC)) + if (!vma_test(vma, VMA_EXEC_BIT)) return; rcu_read_lock(); -- 2.56.0
