From: Jerome Glisse Date: Mon, 17 Nov 2008 12:35:51 +0000 (+0100) Subject: Revert "gem: protect idr_pre with the spinlock" X-Git-Tag: submit/1.0/20121108.012404~642^2~4^2 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e98eda91593b7c0a7494475be8cfd8cb4740f8ec;p=profile%2Fivi%2Flibdrm.git Revert "gem: protect idr_pre with the spinlock" This reverts commit f46aba43329786c9b2776e82af31d90e1c67eae0. --- diff --git a/linux-core/drm_gem.c b/linux-core/drm_gem.c index 0078929..607c8b6 100644 --- a/linux-core/drm_gem.c +++ b/linux-core/drm_gem.c @@ -175,11 +175,12 @@ drm_gem_handle_create(struct drm_file *file_priv, * Get the user-visible handle using idr. */ again: - /* do the allocation under our spinlock */ - spin_lock(&file_priv->table_lock); /* ensure there is space available to allocate a handle */ if (idr_pre_get(&file_priv->object_idr, GFP_KERNEL) == 0) return -ENOMEM; + + /* do the allocation under our spinlock */ + spin_lock(&file_priv->table_lock); ret = idr_get_new_above(&file_priv->object_idr, obj, 1, handlep); spin_unlock(&file_priv->table_lock); if (ret == -EAGAIN) @@ -257,9 +258,10 @@ drm_gem_flink_ioctl(struct drm_device *dev, void *data, return -EINVAL; again: - spin_lock(&dev->object_name_lock); if (idr_pre_get(&dev->object_name_idr, GFP_KERNEL) == 0) return -ENOMEM; + + spin_lock(&dev->object_name_lock); if (obj->name) { args->name = (uint64_t) obj->name; spin_unlock(&dev->object_name_lock);