Rev 6660 | Rev 6937 | Go to most recent revision | Show entire file | Regard whitespace | Details | Blame | Last modification | View Log | RSS feed
Rev 6660 | Rev 6935 | ||
---|---|---|---|
Line 26... | Line 26... | ||
26 | */ |
26 | */ |
Line 27... | Line 27... | ||
27 | 27 | ||
28 | #include |
28 | #include |
29 | #include |
29 | #include |
- | 30 | #include |
|
30 | #include |
31 | #include |
31 | #include |
32 | #include |
32 | #include |
33 | #include |
33 | #include |
34 | #include |
34 | #include |
35 | #include |
Line 307... | Line 308... | ||
307 | drm_gem_object_reference(obj); |
308 | drm_gem_object_reference(obj); |
308 | obj->handle_count++; |
309 | obj->handle_count++; |
309 | spin_unlock(&file_priv->table_lock); |
310 | spin_unlock(&file_priv->table_lock); |
310 | idr_preload_end(); |
311 | idr_preload_end(); |
311 | mutex_unlock(&dev->object_name_lock); |
312 | mutex_unlock(&dev->object_name_lock); |
312 | if (ret < 0) { |
313 | if (ret < 0) |
313 | drm_gem_object_handle_unreference_unlocked(obj); |
- | |
314 | return ret; |
314 | goto err_unref; |
315 | } |
315 | |
316 | *handlep = ret; |
316 | *handlep = ret; |
Line 317... | Line 317... | ||
317 | 317 | ||
318 | // ret = drm_vma_node_allow(&obj->vma_node, file_priv->filp); |
318 | // ret = drm_vma_node_allow(&obj->vma_node, file_priv->filp); |
319 | // if (ret) { |
319 | // if (ret) { |
320 | // drm_gem_handle_delete(file_priv, *handlep); |
320 | // drm_gem_handle_delete(file_priv, *handlep); |
321 | // return ret; |
321 | // return ret; |
Line 322... | Line 322... | ||
322 | // } |
322 | // } |
323 | 323 | ||
324 | if (dev->driver->gem_open_object) { |
324 | if (dev->driver->gem_open_object) { |
325 | ret = dev->driver->gem_open_object(obj, file_priv); |
- | |
326 | if (ret) { |
325 | ret = dev->driver->gem_open_object(obj, file_priv); |
327 | drm_gem_handle_delete(file_priv, *handlep); |
- | |
328 | return ret; |
326 | if (ret) |
Line 329... | Line 327... | ||
329 | } |
327 | goto err_revoke; |
- | 328 | } |
|
- | 329 | ||
- | 330 | return 0; |
|
- | 331 | ||
- | 332 | err_revoke: |
|
- | 333 | // drm_vma_node_revoke(&obj->vma_node, file_priv->filp); |
|
- | 334 | err_remove: |
|
- | 335 | spin_lock(&file_priv->table_lock); |
|
- | 336 | idr_remove(&file_priv->object_idr, *handlep); |
|
- | 337 | spin_unlock(&file_priv->table_lock); |
|
330 | } |
338 | err_unref: |
Line 331... | Line 339... | ||
331 | 339 | drm_gem_object_handle_unreference_unlocked(obj); |
|
332 | return 0; |
340 | return ret; |
333 | } |
341 | } |