@@ -302,7 +302,7 @@ void i915_pmu_gt_parked(struct intel_gt *gt)
302
302
{
303
303
struct i915_pmu * pmu = & gt -> i915 -> pmu ;
304
304
305
- if (pmu -> closed )
305
+ if (! pmu -> registered )
306
306
return ;
307
307
308
308
spin_lock_irq (& pmu -> lock );
@@ -324,7 +324,7 @@ void i915_pmu_gt_unparked(struct intel_gt *gt)
324
324
{
325
325
struct i915_pmu * pmu = & gt -> i915 -> pmu ;
326
326
327
- if (pmu -> closed )
327
+ if (! pmu -> registered )
328
328
return ;
329
329
330
330
spin_lock_irq (& pmu -> lock );
@@ -626,7 +626,7 @@ static int i915_pmu_event_init(struct perf_event *event)
626
626
struct drm_i915_private * i915 = pmu_to_i915 (pmu );
627
627
int ret ;
628
628
629
- if (pmu -> closed )
629
+ if (! pmu -> registered )
630
630
return - ENODEV ;
631
631
632
632
if (event -> attr .type != event -> pmu -> type )
@@ -724,7 +724,7 @@ static void i915_pmu_event_read(struct perf_event *event)
724
724
struct hw_perf_event * hwc = & event -> hw ;
725
725
u64 prev , new ;
726
726
727
- if (pmu -> closed ) {
727
+ if (! pmu -> registered ) {
728
728
event -> hw .state = PERF_HES_STOPPED ;
729
729
return ;
730
730
}
@@ -850,7 +850,7 @@ static void i915_pmu_event_start(struct perf_event *event, int flags)
850
850
{
851
851
struct i915_pmu * pmu = event_to_pmu (event );
852
852
853
- if (pmu -> closed )
853
+ if (! pmu -> registered )
854
854
return ;
855
855
856
856
i915_pmu_enable (event );
@@ -861,7 +861,7 @@ static void i915_pmu_event_stop(struct perf_event *event, int flags)
861
861
{
862
862
struct i915_pmu * pmu = event_to_pmu (event );
863
863
864
- if (pmu -> closed )
864
+ if (! pmu -> registered )
865
865
goto out ;
866
866
867
867
if (flags & PERF_EF_UPDATE )
@@ -877,7 +877,7 @@ static int i915_pmu_event_add(struct perf_event *event, int flags)
877
877
{
878
878
struct i915_pmu * pmu = event_to_pmu (event );
879
879
880
- if (pmu -> closed )
880
+ if (! pmu -> registered )
881
881
return - ENODEV ;
882
882
883
883
if (flags & PERF_EF_START )
@@ -1193,7 +1193,7 @@ static int i915_pmu_cpu_offline(unsigned int cpu, struct hlist_node *node)
1193
1193
* Unregistering an instance generates a CPU offline event which we must
1194
1194
* ignore to avoid incorrectly modifying the shared i915_pmu_cpumask.
1195
1195
*/
1196
- if (pmu -> closed )
1196
+ if (! pmu -> registered )
1197
1197
return 0 ;
1198
1198
1199
1199
if (cpumask_test_and_clear_cpu (cpu , & i915_pmu_cpumask )) {
@@ -1263,8 +1263,6 @@ void i915_pmu_register(struct drm_i915_private *i915)
1263
1263
};
1264
1264
int ret = - ENOMEM ;
1265
1265
1266
- pmu -> closed = true;
1267
-
1268
1266
spin_lock_init (& pmu -> lock );
1269
1267
hrtimer_init (& pmu -> timer , CLOCK_MONOTONIC , HRTIMER_MODE_REL );
1270
1268
pmu -> timer .function = i915_sample ;
@@ -1313,7 +1311,7 @@ void i915_pmu_register(struct drm_i915_private *i915)
1313
1311
if (ret )
1314
1312
goto err_unreg ;
1315
1313
1316
- pmu -> closed = false ;
1314
+ pmu -> registered = true ;
1317
1315
1318
1316
return ;
1319
1317
@@ -1334,12 +1332,15 @@ void i915_pmu_unregister(struct drm_i915_private *i915)
1334
1332
{
1335
1333
struct i915_pmu * pmu = & i915 -> pmu ;
1336
1334
1335
+ if (!pmu -> registered )
1336
+ return ;
1337
+
1337
1338
/*
1338
1339
* "Disconnect" the PMU callbacks - since all are atomic synchronize_rcu
1339
1340
* ensures all currently executing ones will have exited before we
1340
1341
* proceed with unregistration.
1341
1342
*/
1342
- pmu -> closed = true ;
1343
+ pmu -> registered = false ;
1343
1344
synchronize_rcu ();
1344
1345
1345
1346
hrtimer_cancel (& pmu -> timer );
0 commit comments