* - in case there is no HW filter
  * - in case the HW filter has errata or limitations
  */
-static int intel_pmu_setup_sw_lbr_filter(struct perf_event *event)
+static void intel_pmu_setup_sw_lbr_filter(struct perf_event *event)
 {
        u64 br_type = event->attr.branch_sample_type;
        int mask = 0;
        if (br_type & PERF_SAMPLE_BRANCH_USER)
                mask |= X86_BR_USER;
 
-       if (br_type & PERF_SAMPLE_BRANCH_KERNEL) {
-               if (perf_paranoid_kernel() && !capable(CAP_SYS_ADMIN))
-                       return -EACCES;
+       if (br_type & PERF_SAMPLE_BRANCH_KERNEL)
                mask |= X86_BR_KERNEL;
-       }
 
        /* we ignore BRANCH_HV here */
 
         * be used by fixup code for some CPU
         */
        event->hw.branch_reg.reg = mask;
-
-       return 0;
 }
 
 /*
        /*
         * setup SW LBR filter
         */
-       ret = intel_pmu_setup_sw_lbr_filter(event);
-       if (ret)
-               return ret;
+       intel_pmu_setup_sw_lbr_filter(event);
 
        /*
         * setup HW LBR filter, if any
 
                if (!(mask & ~PERF_SAMPLE_BRANCH_PLM_ALL))
                        return -EINVAL;
 
-               /* kernel level capture: check permissions */
-               if ((mask & PERF_SAMPLE_BRANCH_PERM_PLM)
-                   && perf_paranoid_kernel() && !capable(CAP_SYS_ADMIN))
-                       return -EACCES;
-
                /* propagate priv level, when not set for branch */
                if (!(mask & PERF_SAMPLE_BRANCH_PLM_ALL)) {
 
                         */
                        attr->branch_sample_type = mask;
                }
+               /* kernel level capture: check permissions */
+               if ((mask & PERF_SAMPLE_BRANCH_KERNEL)
+                   && perf_paranoid_kernel() && !capable(CAP_SYS_ADMIN))
+                       return -EACCES;
        }
 
        if (attr->sample_type & PERF_SAMPLE_REGS_USER) {