| .. | .. |
|---|
| 175 | 175 | } |
|---|
| 176 | 176 | EXPORT_SYMBOL(drm_gem_private_object_init); |
|---|
| 177 | 177 | |
|---|
| 178 | | -static void |
|---|
| 179 | | -drm_gem_remove_prime_handles(struct drm_gem_object *obj, struct drm_file *filp) |
|---|
| 180 | | -{ |
|---|
| 181 | | - /* |
|---|
| 182 | | - * Note: obj->dma_buf can't disappear as long as we still hold a |
|---|
| 183 | | - * handle reference in obj->handle_count. |
|---|
| 184 | | - */ |
|---|
| 185 | | - mutex_lock(&filp->prime.lock); |
|---|
| 186 | | - if (obj->dma_buf) { |
|---|
| 187 | | - drm_prime_remove_buf_handle_locked(&filp->prime, |
|---|
| 188 | | - obj->dma_buf); |
|---|
| 189 | | - } |
|---|
| 190 | | - mutex_unlock(&filp->prime.lock); |
|---|
| 191 | | -} |
|---|
| 192 | | - |
|---|
| 193 | 178 | /** |
|---|
| 194 | 179 | * drm_gem_object_handle_free - release resources bound to userspace handles |
|---|
| 195 | 180 | * @obj: GEM object to clean up. |
|---|
| .. | .. |
|---|
| 262 | 247 | dev->driver->gem_close_object(obj, file_priv); |
|---|
| 263 | 248 | |
|---|
| 264 | 249 | if (drm_core_check_feature(dev, DRIVER_PRIME)) |
|---|
| 265 | | - drm_gem_remove_prime_handles(obj, file_priv); |
|---|
| 250 | + drm_prime_remove_buf_handle(&file_priv->prime, id); |
|---|
| 266 | 251 | drm_vma_node_revoke(&obj->vma_node, file_priv); |
|---|
| 267 | 252 | |
|---|
| 268 | 253 | drm_gem_object_handle_put_unlocked(obj); |
|---|