File tree Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Expand file tree Collapse file tree 1 file changed +9
-4
lines changed Original file line number Diff line number Diff line change @@ -8855,7 +8855,10 @@ EXPORT_SYMBOL_GPL(perf_pmu_register);
88558855
88568856void perf_pmu_unregister (struct pmu * pmu )
88578857{
8858+ int remove_device ;
8859+
88588860 mutex_lock (& pmus_lock );
8861+ remove_device = pmu_bus_running ;
88598862 list_del_rcu (& pmu -> entry );
88608863 mutex_unlock (& pmus_lock );
88618864
@@ -8869,10 +8872,12 @@ void perf_pmu_unregister(struct pmu *pmu)
88698872 free_percpu (pmu -> pmu_disable_count );
88708873 if (pmu -> type >= PERF_TYPE_MAX )
88718874 idr_remove (& pmu_idr , pmu -> type );
8872- if (pmu -> nr_addr_filters )
8873- device_remove_file (pmu -> dev , & dev_attr_nr_addr_filters );
8874- device_del (pmu -> dev );
8875- put_device (pmu -> dev );
8875+ if (remove_device ) {
8876+ if (pmu -> nr_addr_filters )
8877+ device_remove_file (pmu -> dev , & dev_attr_nr_addr_filters );
8878+ device_del (pmu -> dev );
8879+ put_device (pmu -> dev );
8880+ }
88768881 free_pmu_context (pmu );
88778882}
88788883EXPORT_SYMBOL_GPL (perf_pmu_unregister );
You can’t perform that action at this time.
0 commit comments