From 12fee83fd5a61b839761ac3ff9873bb7a0538fa1 Mon Sep 17 00:00:00 2001 From: Tejun Heo Date: Wed, 27 Feb 2013 17:04:46 -0800 Subject: [PATCH] --- yaml --- r: 359367 b: refs/heads/master c: 6deb69facebb2f9a2b15a8e5e33ab00ebc7c44cb h: refs/heads/master i: 359365: a5fa81a1e7969e46653c33abe35f2cfe79c828a6 359363: b0075d14a9360d27a519871196c503d922afb188 359359: 5a164151fe7345708e6ebd8ecb4d919c16ed4e43 v: v3 --- [refs] | 2 +- trunk/drivers/thermal/cpu_cooling.c | 17 +++++------------ trunk/drivers/thermal/thermal_sys.c | 17 +++++------------ 3 files changed, 11 insertions(+), 25 deletions(-) diff --git a/[refs] b/[refs] index 06570320d6cb..ebbfd45e5dc0 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: ab51603672a335d325963ca410d9c527d9f834f7 +refs/heads/master: 6deb69facebb2f9a2b15a8e5e33ab00ebc7c44cb diff --git a/trunk/drivers/thermal/cpu_cooling.c b/trunk/drivers/thermal/cpu_cooling.c index 836828e29a87..c33fa5315d6b 100644 --- a/trunk/drivers/thermal/cpu_cooling.c +++ b/trunk/drivers/thermal/cpu_cooling.c @@ -73,21 +73,14 @@ static struct cpufreq_cooling_device *notify_device; */ static int get_idr(struct idr *idr, int *id) { - int err; -again: - if (unlikely(idr_pre_get(idr, GFP_KERNEL) == 0)) - return -ENOMEM; + int ret; mutex_lock(&cooling_cpufreq_lock); - err = idr_get_new(idr, NULL, id); + ret = idr_alloc(idr, NULL, 0, 0, GFP_KERNEL); mutex_unlock(&cooling_cpufreq_lock); - - if (unlikely(err == -EAGAIN)) - goto again; - else if (unlikely(err)) - return err; - - *id = *id & MAX_IDR_MASK; + if (unlikely(ret < 0)) + return ret; + *id = ret; return 0; } diff --git a/trunk/drivers/thermal/thermal_sys.c b/trunk/drivers/thermal/thermal_sys.c index 8c8ce806180f..84e95f32cdb6 100644 --- a/trunk/drivers/thermal/thermal_sys.c +++ b/trunk/drivers/thermal/thermal_sys.c @@ -132,23 +132,16 @@ EXPORT_SYMBOL_GPL(thermal_unregister_governor); static int get_idr(struct idr *idr, struct mutex *lock, int *id) { - int err; - -again: - if (unlikely(idr_pre_get(idr, GFP_KERNEL) == 0)) - return -ENOMEM; + int ret; if (lock) mutex_lock(lock); - err = idr_get_new(idr, NULL, id); + ret = idr_alloc(idr, NULL, 0, 0, GFP_KERNEL); if (lock) mutex_unlock(lock); - if (unlikely(err == -EAGAIN)) - goto again; - else if (unlikely(err)) - return err; - - *id = *id & MAX_IDR_MASK; + if (unlikely(ret < 0)) + return ret; + *id = ret; return 0; }