Commit d64aa096 authored by Imre Deak's avatar Imre Deak

drm/i915: Sanitize i915_gem_load() init and clean-up

Factor out common clean-up code for the GEM load time init function.
Also rename i915_gem_load() to i915_gem_load_init() to have a better
match with its new clean-up function.

No functional change.
Signed-off-by: default avatarImre Deak <imre.deak@intel.com>
Reviewed-by: default avatarDavid Weinehall <david.weinehall@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1453209992-25995-5-git-send-email-imre.deak@intel.com
parent a8a40589
...@@ -1034,7 +1034,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) ...@@ -1034,7 +1034,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
intel_setup_mchbar(dev); intel_setup_mchbar(dev);
intel_opregion_setup(dev); intel_opregion_setup(dev);
i915_gem_load(dev); i915_gem_load_init(dev);
i915_gem_shrinker_init(dev_priv); i915_gem_shrinker_init(dev_priv);
/* On the 945G/GM, the chipset reports the MSI capability on the /* On the 945G/GM, the chipset reports the MSI capability on the
...@@ -1121,9 +1121,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags) ...@@ -1121,9 +1121,7 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
pci_iounmap(dev->pdev, dev_priv->regs); pci_iounmap(dev->pdev, dev_priv->regs);
put_bridge: put_bridge:
pci_dev_put(dev_priv->bridge_dev); pci_dev_put(dev_priv->bridge_dev);
kmem_cache_destroy(dev_priv->requests); i915_gem_load_cleanup(dev);
kmem_cache_destroy(dev_priv->vmas);
kmem_cache_destroy(dev_priv->objects);
out_runtime_pm_put: out_runtime_pm_put:
intel_runtime_pm_put(dev_priv); intel_runtime_pm_put(dev_priv);
...@@ -1215,9 +1213,7 @@ int i915_driver_unload(struct drm_device *dev) ...@@ -1215,9 +1213,7 @@ int i915_driver_unload(struct drm_device *dev)
if (dev_priv->regs != NULL) if (dev_priv->regs != NULL)
pci_iounmap(dev->pdev, dev_priv->regs); pci_iounmap(dev->pdev, dev_priv->regs);
kmem_cache_destroy(dev_priv->requests); i915_gem_load_cleanup(dev);
kmem_cache_destroy(dev_priv->vmas);
kmem_cache_destroy(dev_priv->objects);
pci_dev_put(dev_priv->bridge_dev); pci_dev_put(dev_priv->bridge_dev);
kfree(dev_priv); kfree(dev_priv);
......
...@@ -2848,7 +2848,8 @@ int i915_gem_get_aperture_ioctl(struct drm_device *dev, void *data, ...@@ -2848,7 +2848,8 @@ int i915_gem_get_aperture_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv); struct drm_file *file_priv);
int i915_gem_wait_ioctl(struct drm_device *dev, void *data, int i915_gem_wait_ioctl(struct drm_device *dev, void *data,
struct drm_file *file_priv); struct drm_file *file_priv);
void i915_gem_load(struct drm_device *dev); void i915_gem_load_init(struct drm_device *dev);
void i915_gem_load_cleanup(struct drm_device *dev);
void *i915_gem_object_alloc(struct drm_device *dev); void *i915_gem_object_alloc(struct drm_device *dev);
void i915_gem_object_free(struct drm_i915_gem_object *obj); void i915_gem_object_free(struct drm_i915_gem_object *obj);
void i915_gem_object_init(struct drm_i915_gem_object *obj, void i915_gem_object_init(struct drm_i915_gem_object *obj,
......
...@@ -5034,7 +5034,7 @@ init_ring_lists(struct intel_engine_cs *ring) ...@@ -5034,7 +5034,7 @@ init_ring_lists(struct intel_engine_cs *ring)
} }
void void
i915_gem_load(struct drm_device *dev) i915_gem_load_init(struct drm_device *dev)
{ {
struct drm_i915_private *dev_priv = dev->dev_private; struct drm_i915_private *dev_priv = dev->dev_private;
int i; int i;
...@@ -5103,6 +5103,15 @@ i915_gem_load(struct drm_device *dev) ...@@ -5103,6 +5103,15 @@ i915_gem_load(struct drm_device *dev)
mutex_init(&dev_priv->fb_tracking.lock); mutex_init(&dev_priv->fb_tracking.lock);
} }
void i915_gem_load_cleanup(struct drm_device *dev)
{
struct drm_i915_private *dev_priv = to_i915(dev);
kmem_cache_destroy(dev_priv->requests);
kmem_cache_destroy(dev_priv->vmas);
kmem_cache_destroy(dev_priv->objects);
}
void i915_gem_release(struct drm_device *dev, struct drm_file *file) void i915_gem_release(struct drm_device *dev, struct drm_file *file)
{ {
struct drm_i915_file_private *file_priv = file->driver_priv; struct drm_i915_file_private *file_priv = file->driver_priv;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment