diff options
Diffstat (limited to 'drivers/gpu/drm/sis/sis_mm.c')
| -rw-r--r-- | drivers/gpu/drm/sis/sis_mm.c | 13 | 
1 files changed, 3 insertions, 10 deletions
diff --git a/drivers/gpu/drm/sis/sis_mm.c b/drivers/gpu/drm/sis/sis_mm.c index 2b2f78c428a..9a43d98e500 100644 --- a/drivers/gpu/drm/sis/sis_mm.c +++ b/drivers/gpu/drm/sis/sis_mm.c @@ -128,17 +128,10 @@ static int sis_drm_alloc(struct drm_device *dev, struct drm_file *file,  	if (retval)  		goto fail_alloc; -again: -	if (idr_pre_get(&dev_priv->object_idr, GFP_KERNEL) == 0) { -		retval = -ENOMEM; -		goto fail_idr; -	} - -	retval = idr_get_new_above(&dev_priv->object_idr, item, 1, &user_key); -	if (retval == -EAGAIN) -		goto again; -	if (retval) +	retval = idr_alloc(&dev_priv->object_idr, item, 1, 0, GFP_KERNEL); +	if (retval < 0)  		goto fail_idr; +	user_key = retval;  	list_add(&item->owner_list, &file_priv->obj_list);  	mutex_unlock(&dev->struct_mutex);  |