diff --git a/[refs] b/[refs] index 6169be9153dc..9c46db487d49 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: d228d9ec2c9a119ce15c6446ebeec05786ab3287 +refs/heads/master: 0e9c3be20d88aa5ed13fde4ece50f45eb96824ad diff --git a/trunk/kernel/events/core.c b/trunk/kernel/events/core.c index ccc457e36354..5a92cf6beff0 100644 --- a/trunk/kernel/events/core.c +++ b/trunk/kernel/events/core.c @@ -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; } }