if (rb_has_aux(rb)) {
atomic_inc(&rb->aux_mmap_count);
ret = 0;
- goto aux_success;
- }
- if (!perf_mmap_calc_limits(vma, &user_extra, &extra)) {
- ret = -EPERM;
- atomic_dec(&rb->mmap_count);
- goto unlock;
- }
+ } else {
+ if (!perf_mmap_calc_limits(vma, &user_extra, &extra)) {
+ ret = -EPERM;
+ atomic_dec(&rb->mmap_count);
+ goto unlock;
+ }
- WARN_ON(!rb && event->rb);
+ WARN_ON(!rb && event->rb);
- if (vma->vm_flags & VM_WRITE)
- flags |= RING_BUFFER_WRITABLE;
+ if (vma->vm_flags & VM_WRITE)
+ flags |= RING_BUFFER_WRITABLE;
- ret = rb_alloc_aux(rb, event, vma->vm_pgoff, nr_pages,
- event->attr.aux_watermark, flags);
- if (ret) {
- atomic_dec(&rb->mmap_count);
- goto unlock;
- }
+ ret = rb_alloc_aux(rb, event, vma->vm_pgoff, nr_pages,
+ event->attr.aux_watermark, flags);
+ if (ret) {
+ atomic_dec(&rb->mmap_count);
+ goto unlock;
+ }
- atomic_set(&rb->aux_mmap_count, 1);
- rb->aux_mmap_locked = extra;
-aux_success:
+ atomic_set(&rb->aux_mmap_count, 1);
+ rb->aux_mmap_locked = extra;
+ }
perf_mmap_account(vma, user_extra, extra);
atomic_inc(&event->mmap_count);
}