Hello! This problem is found in 3.0 kernel. In i915_dma_cleanup function(drivers/gpu/drm/i915/i915_dma.c module) I found following: 135static int i915_dma_cleanup(struct drm_device * dev) 136{ ....... 152 /* Clear the HWS virtual address at teardown */ 153 if (I915_NEED_GFX_HWS(dev)) 154 i915_free_hws(dev); ....... 157} 2102int i915_driver_unload(struct drm_device *dev) 2103{ ........ 2174 if (!I915_NEED_GFX_HWS(dev)) 2175 i915_free_hws(dev); ........ 2190} I.e. in one case i915_free_hws function is called when (I915_NEED_GFX_HWS(dev)) condition is true(i915_dma_cleanup), but in other case it called when (!I915_NEED_GFX_HWS(dev)) condition is true(in i915_driver_unload function). This is intentional? Corresponding init function is called only when (!I915_NEED_GFX_HWS(dev)) condition is true(in i915_driver_load function). Therefore I guess that if condition is wrong in i915_dma_cleanup function. Thanks, Dmitry _______________________________________________ dri-devel mailing list dri-devel@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/dri-devel