diff options
Diffstat (limited to 'drivers/gpu')
| -rw-r--r-- | drivers/gpu/drm/drm_gem.c | 10 | ||||
| -rw-r--r-- | drivers/gpu/drm/i915/i915_gem.c | 3 | ||||
| -rw-r--r-- | drivers/gpu/drm/nouveau/nouveau_gem.c | 3 | ||||
| -rw-r--r-- | drivers/gpu/drm/radeon/radeon_gem.c | 3 | 
4 files changed, 12 insertions, 7 deletions
diff --git a/drivers/gpu/drm/drm_gem.c b/drivers/gpu/drm/drm_gem.c index 3b64d0ef199..33dad3fa604 100644 --- a/drivers/gpu/drm/drm_gem.c +++ b/drivers/gpu/drm/drm_gem.c @@ -422,15 +422,15 @@ drm_gem_release(struct drm_device *dev, struct drm_file *file_private)  	idr_destroy(&file_private->object_idr);  } -static void -drm_gem_object_free_common(struct drm_gem_object *obj) +void +drm_gem_object_release(struct drm_gem_object *obj)  {  	struct drm_device *dev = obj->dev;  	fput(obj->filp);  	atomic_dec(&dev->object_count);  	atomic_sub(obj->size, &dev->object_memory); -	kfree(obj);  } +EXPORT_SYMBOL(drm_gem_object_release);  /**   * Called after the last reference to the object has been lost. @@ -448,8 +448,6 @@ drm_gem_object_free(struct kref *kref)  	if (dev->driver->gem_free_object != NULL)  		dev->driver->gem_free_object(obj); - -	drm_gem_object_free_common(obj);  }  EXPORT_SYMBOL(drm_gem_object_free); @@ -472,8 +470,6 @@ drm_gem_object_free_unlocked(struct kref *kref)  		dev->driver->gem_free_object(obj);  		mutex_unlock(&dev->struct_mutex);  	} - -	drm_gem_object_free_common(obj);  }  EXPORT_SYMBOL(drm_gem_object_free_unlocked); diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c index 80871c62a57..d4ea90999f6 100644 --- a/drivers/gpu/drm/i915/i915_gem.c +++ b/drivers/gpu/drm/i915/i915_gem.c @@ -4474,6 +4474,9 @@ void i915_gem_free_object(struct drm_gem_object *obj)  	kfree(obj_priv->page_cpu_valid);  	kfree(obj_priv->bit_17);  	kfree(obj->driver_private); + +	drm_gem_object_release(obj); +	kfree(obj);  }  /** Unbinds all inactive objects. */ diff --git a/drivers/gpu/drm/nouveau/nouveau_gem.c b/drivers/gpu/drm/nouveau/nouveau_gem.c index 1bc0b38a516..6d1aa89ec87 100644 --- a/drivers/gpu/drm/nouveau/nouveau_gem.c +++ b/drivers/gpu/drm/nouveau/nouveau_gem.c @@ -57,6 +57,9 @@ nouveau_gem_object_del(struct drm_gem_object *gem)  	}  	ttm_bo_unref(&bo); + +	drm_gem_object_release(gem); +	kfree(gem);  }  int diff --git a/drivers/gpu/drm/radeon/radeon_gem.c b/drivers/gpu/drm/radeon/radeon_gem.c index 28dd3e1b9c3..a72a3ee5d69 100644 --- a/drivers/gpu/drm/radeon/radeon_gem.c +++ b/drivers/gpu/drm/radeon/radeon_gem.c @@ -44,6 +44,9 @@ void radeon_gem_object_free(struct drm_gem_object *gobj)  	if (robj) {  		radeon_bo_unref(&robj);  	} + +	drm_gem_object_release(gobj); +	kfree(gobj);  }  int radeon_gem_object_create(struct radeon_device *rdev, int size,  |