drm/i915: Prevent module unload to avoid random memory corruption
authorChris Wilson <chris@chris-wilson.co.uk>
Fri, 8 Oct 2010 12:40:27 +0000 (13:40 +0100)
committerChris Wilson <chris@chris-wilson.co.uk>
Fri, 8 Oct 2010 13:11:00 +0000 (14:11 +0100)
The i915 driver has quite a few module unload bugs, the known ones at
least have fixes that are targeting 2.6.37. However, in order to
maintain a stable kernel, we should prevent this known random memory
corruption following driver unload. This should have very low impact on
normal users who are unlikely to need to unload the i915 driver.

Suggested-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Cc: stable@kernel.org
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
drivers/gpu/drm/i915/i915_dma.c

index c74e4e8006d4b28e02ae9fb44ee11f491e130775..2dd2c93ebfa35dace7916b38c6df18c835161978 100644 (file)
@@ -2231,6 +2231,9 @@ int i915_driver_load(struct drm_device *dev, unsigned long flags)
        dev_priv->mchdev_lock = &mchdev_lock;
        spin_unlock(&mchdev_lock);
 
+       /* XXX Prevent module unload due to memory corruption bugs. */
+       __module_get(THIS_MODULE);
+
        return 0;
 
 out_workqueue_free: