drm/i915: Fix oops on HWS unload
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Sun, 10 Oct 2010 17:54:08 +0000 (18:54 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 19 Oct 2010 08:16:35 +0000 (09:16 +0100)
Freeing the Hardware Status Page was writing to the HWS register in
order to disable the GPU writing to the HWS page. Unfortunately, we were
writing to the mmio register after unmapping the register space, hence
the oops.

Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/i915_dma.c

index f451af69d4377bb238300e11075b0033a448405d..2caf43de8a6a403d3364d35a93fdf803fa00d75d 100644 (file)
@@ -2133,9 +2133,6 @@ int i915_driver_unload(struct drm_device *dev)
        if (dev->pdev->msi_enabled)
                pci_disable_msi(dev->pdev);
 
-       if (dev_priv->regs != NULL)
-               iounmap(dev_priv->regs);
-
        intel_opregion_fini(dev);
 
        if (drm_core_check_feature(dev, DRIVER_MODESET)) {
@@ -2157,6 +2154,9 @@ int i915_driver_unload(struct drm_device *dev)
                        i915_free_hws(dev);
        }
 
+       if (dev_priv->regs != NULL)
+               iounmap(dev_priv->regs);
+
        intel_teardown_gmbus(dev);
        intel_teardown_mchbar(dev);