[PATCH] drm/i915: Free hardware status page on unload when physically mapped

Dave Airlie airlied at redhat.com
Wed Oct 6 22:43:43 PDT 2010


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 at 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);




More information about the dri-devel mailing list