diff options
author | Tejun Heo <[email protected]> | 2013-02-27 17:04:09 -0800 |
---|---|---|
committer | Linus Torvalds <[email protected]> | 2013-02-27 19:10:15 -0800 |
commit | 8550cb2e3a3f4a5f2f6aa40b6c99691056f85b9d (patch) | |
tree | 1703c0bc1882eaa3c8e9cb275544acae0b92eca7 | |
parent | 2e928815c1886fe628ed54623aa98d0889cf5509 (diff) |
drm/exynos: convert to idr_alloc()
Convert to the much saner new idr interface.
Signed-off-by: Tejun Heo <[email protected]>
Acked-by: David Airlie <[email protected]>
Cc: Kukjin Kim <[email protected]>
Signed-off-by: Andrew Morton <[email protected]>
Signed-off-by: Linus Torvalds <[email protected]>
-rw-r--r-- | drivers/gpu/drm/exynos/exynos_drm_ipp.c | 16 |
1 files changed, 5 insertions, 11 deletions
diff --git a/drivers/gpu/drm/exynos/exynos_drm_ipp.c b/drivers/gpu/drm/exynos/exynos_drm_ipp.c index 90398dfbfd75..1adce07ecb5b 100644 --- a/drivers/gpu/drm/exynos/exynos_drm_ipp.c +++ b/drivers/gpu/drm/exynos/exynos_drm_ipp.c @@ -137,21 +137,15 @@ static int ipp_create_id(struct idr *id_idr, struct mutex *lock, void *obj, DRM_DEBUG_KMS("%s\n", __func__); -again: - /* ensure there is space available to allocate a handle */ - if (idr_pre_get(id_idr, GFP_KERNEL) == 0) { - DRM_ERROR("failed to get idr.\n"); - return -ENOMEM; - } - /* do the allocation under our mutexlock */ mutex_lock(lock); - ret = idr_get_new_above(id_idr, obj, 1, (int *)idp); + ret = idr_alloc(id_idr, obj, 1, 0, GFP_KERNEL); mutex_unlock(lock); - if (ret == -EAGAIN) - goto again; + if (ret < 0) + return ret; - return ret; + *idp = ret; + return 0; } static void *ipp_find_obj(struct idr *id_idr, struct mutex *lock, u32 id) |