On Wed, 2010-10-06 at 21:24 -0700, Keith Packard wrote:
A physically mapped hardware status page is allocated at driver load time but was never freed. Call the existing code to free this page at driver unload time on hardware which uses this kind.
the free_hws gets called after we disappear the mmio mapping for the registers. it then writes a register after killing the hws, and oopses.
Dave.
Signed-off-by: Keith Packard keithp@keithp.com
drivers/gpu/drm/i915/i915_dma.c | 3 +++ 1 files changed, 3 insertions(+), 0 deletions(-)
diff --git a/drivers/gpu/drm/i915/i915_dma.c b/drivers/gpu/drm/i915/i915_dma.c index 9d67b48..98bf1f0 100644 --- a/drivers/gpu/drm/i915/i915_dma.c +++ b/drivers/gpu/drm/i915/i915_dma.c @@ -2305,6 +2305,9 @@ int i915_driver_unload(struct drm_device *dev) intel_cleanup_overlay(dev); }
if (!I915_NEED_GFX_HWS(dev))
i915_free_hws(dev);
intel_teardown_mchbar(dev);
pci_dev_put(dev_priv->bridge_dev);