|
@@ -128,9 +128,11 @@ static int i915_dma_cleanup(struct drm_device * dev)
|
|
if (dev->irq_enabled)
|
|
if (dev->irq_enabled)
|
|
drm_irq_uninstall(dev);
|
|
drm_irq_uninstall(dev);
|
|
|
|
|
|
|
|
+ mutex_lock(&dev->struct_mutex);
|
|
intel_cleanup_ring_buffer(dev, &dev_priv->render_ring);
|
|
intel_cleanup_ring_buffer(dev, &dev_priv->render_ring);
|
|
if (HAS_BSD(dev))
|
|
if (HAS_BSD(dev))
|
|
intel_cleanup_ring_buffer(dev, &dev_priv->bsd_ring);
|
|
intel_cleanup_ring_buffer(dev, &dev_priv->bsd_ring);
|
|
|
|
+ mutex_unlock(&dev->struct_mutex);
|
|
|
|
|
|
/* Clear the HWS virtual address at teardown */
|
|
/* Clear the HWS virtual address at teardown */
|
|
if (I915_NEED_GFX_HWS(dev))
|
|
if (I915_NEED_GFX_HWS(dev))
|