perf: Fix the nr_addr_filters fix
authorPeter Zijlstra <peterz@infradead.org>
Wed, 22 Nov 2023 10:07:56 +0000 (11:07 +0100)
committerPeter Zijlstra <peterz@infradead.org>
Thu, 23 Nov 2023 15:08:31 +0000 (16:08 +0100)
Thomas reported that commit 652ffc2104ec ("perf/core: Fix narrow
startup race when creating the perf nr_addr_filters sysfs file") made
the entire attribute group vanish, instead of only the nr_addr_filters
attribute.

Additionally a stray return.

Insufficient coffee was involved with both writing and merging the
patch.

Fixes: 652ffc2104ec ("perf/core: Fix narrow startup race when creating the perf nr_addr_filters sysfs file")
Reported-by: Thomas Richter <tmricht@linux.ibm.com>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Tested-by: Thomas Richter <tmricht@linux.ibm.com>
Link: https://lkml.kernel.org/r/20231122100756.GP8262@noisy.programming.kicks-ass.net
kernel/events/core.c

index 4f0c45ab8d7dc0f4625ea20c2a935513edb145c5..59b332cce9e717d7aaaccd300bafc8e9a6f82fd9 100644 (file)
@@ -11417,12 +11417,10 @@ static umode_t pmu_dev_is_visible(struct kobject *kobj, struct attribute *a, int
        struct device *dev = kobj_to_dev(kobj);
        struct pmu *pmu = dev_get_drvdata(dev);
 
-       if (!pmu->nr_addr_filters)
+       if (n == 2 && !pmu->nr_addr_filters)
                return 0;
 
        return a->mode;
-
-       return 0;
 }
 
 static struct attribute_group pmu_dev_attr_group = {