* We don't support any planar format, pick up first buffer only.
*/
gem = drm_gem_object_lookup(dev, file, cmd->handles[0]);
gem = drm_gem_object_lookup(file, cmd->handles[0]);
if (gem == NULL)
{
mutex_lock(&dev->struct_mutex);
gem = drm_gem_object_lookup(dev, file, handle);
gem = drm_gem_object_lookup(file, handle);
gpu->id, uvm_gpu_retained_count(gpu));
// All channels should have been removed before the retained count went to 0
UVM_ASSERT(radix_tree_empty(&gpu->instance_ptr_table));
UVM_ASSERT(radix_tree_is_empty(&gpu->instance_ptr_table));
// Remove the GPU from the table.
uvm_spin_lock_irqsave(&g_uvm_global.gpu_table_lock);
INIT_RADIX_TREE(tree, GFP_NOWAIT);
}
static bool radix_tree_empty(struct radix_tree_root *tree)
static bool radix_tree_is_empty(struct radix_tree_root *tree)
void *dummy;
return radix_tree_gang_lookup(tree, &dummy, 0, 1) == 0;