|
@@ -5965,13 +5965,9 @@ int perf_pmu_register(struct pmu *pmu, char *name, int type)
|
|
|
pmu->name = name;
|
|
|
|
|
|
if (type < 0) {
|
|
|
- int err = idr_pre_get(&pmu_idr, GFP_KERNEL);
|
|
|
- if (!err)
|
|
|
- goto free_pdc;
|
|
|
-
|
|
|
- err = idr_get_new_above(&pmu_idr, pmu, PERF_TYPE_MAX, &type);
|
|
|
- if (err) {
|
|
|
- ret = err;
|
|
|
+ type = idr_alloc(&pmu_idr, pmu, PERF_TYPE_MAX, 0, GFP_KERNEL);
|
|
|
+ if (type < 0) {
|
|
|
+ ret = type;
|
|
|
goto free_pdc;
|
|
|
}
|
|
|
}
|