Subversion Repositories Kolibri OS

Compare Revisions

Regard whitespace Rev 3480 → Rev 3479

/drivers/video/drm/drm_gem.c
217,9 → 217,6
* we may want to use ida for number allocation and a hash table
* for the pointers, anyway.
*/
if(handle == -2)
printf("%s handle %d\n", __FUNCTION__, handle);
 
spin_lock(&filp->table_lock);
 
/* Check if we currently have a reference on the object */
260,19 → 257,21
int ret;
 
/*
* Get the user-visible handle using idr. Preload and perform
* allocation under our spinlock.
* Get the user-visible handle using idr.
*/
idr_preload(GFP_KERNEL);
again:
/* 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_alloc(&file_priv->object_idr, obj, 1, 0, GFP_NOWAIT);
 
ret = idr_get_new_above(&file_priv->object_idr, obj, 1, (int *)handlep);
spin_unlock(&file_priv->table_lock);
idr_preload_end();
if (ret < 0)
if (ret == -EAGAIN)
goto again;
else if (ret)
return ret;
*handlep = ret;
 
drm_gem_object_handle_reference(obj);
 
385,9 → 384,6
{
struct drm_gem_object *obj;
 
if(handle == -2)
printf("%s handle %d\n", __FUNCTION__, handle);
 
spin_lock(&filp->table_lock);
 
/* Check if we currently have a reference on the object */
443,18 → 439,23
if (obj == NULL)
return -ENOENT;
 
idr_preload(GFP_KERNEL);
again:
if (idr_pre_get(&dev->object_name_idr, GFP_KERNEL) == 0) {
ret = -ENOMEM;
goto err;
}
 
spin_lock(&dev->object_name_lock);
if (!obj->name) {
ret = idr_alloc(&dev->object_name_idr, obj, 1, 0, GFP_NOWAIT);
obj->name = ret;
ret = idr_get_new_above(&dev->object_name_idr, obj, 1,
&obj->name);
args->name = (uint64_t) obj->name;
spin_unlock(&dev->object_name_lock);
idr_preload_end();
 
if (ret < 0)
if (ret == -EAGAIN)
goto again;
else if (ret)
goto err;
ret = 0;
 
/* Allocate a reference for the name table. */
drm_gem_object_reference(obj);
461,7 → 462,6
} else {
args->name = (uint64_t) obj->name;
spin_unlock(&dev->object_name_lock);
idr_preload_end();
ret = 0;
}
 
488,9 → 488,6
if (!(dev->driver->driver_features & DRIVER_GEM))
return -ENODEV;
 
if(handle == -2)
printf("%s handle %d\n", __FUNCTION__, handle);
 
spin_lock(&dev->object_name_lock);
obj = idr_find(&dev->object_name_idr, (int) args->name);
if (obj)
552,6 → 549,8
{
idr_for_each(&file_private->object_idr,
&drm_gem_object_release_handle, file_private);
 
idr_remove_all(&file_private->object_idr);
idr_destroy(&file_private->object_idr);
}
#endif