lkml.org 
[lkml]   [2013]   [Feb]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 48/62] thermal: convert to idr_alloc()
    Date
    Convert to the much saner new idr interface.

    Only compile tested.

    Signed-off-by: Tejun Heo <tj@kernel.org>
    Cc: Zhang Rui <rui.zhang@intel.com>
    Cc: linux-pm@vger.kernel.org
    ---
    This patch depends on an earlier idr changes and I think it would be
    best to route these together through -mm. Please holler if there's
    any objection. Thanks.

    drivers/thermal/cpu_cooling.c | 17 +++++------------
    drivers/thermal/thermal_sys.c | 17 +++++------------
    2 files changed, 10 insertions(+), 24 deletions(-)

    diff --git a/drivers/thermal/cpu_cooling.c b/drivers/thermal/cpu_cooling.c
    index 836828e..c33fa53 100644
    --- a/drivers/thermal/cpu_cooling.c
    +++ b/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/drivers/thermal/thermal_sys.c b/drivers/thermal/thermal_sys.c
    index 8c8ce80..84e95f3 100644
    --- a/drivers/thermal/thermal_sys.c
    +++ b/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;
    }

    --
    1.8.1


    \
     
     \ /
      Last update: 2013-02-03 03:41    [W:4.132 / U:0.008 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site