| From 6939a5aca7cfada279a24c307e772f33104fca20 Mon Sep 17 00:00:00 2001 |
| From: Chris Wilson <chris@chris-wilson.co.uk> |
| Date: Fri, 8 Oct 2010 13:40:27 +0100 |
| Subject: drm/i915: Prevent module unload to avoid random memory corruption |
| |
| From: Chris Wilson <chris@chris-wilson.co.uk> |
| |
| commit 6939a5aca7cfada279a24c307e772f33104fca20 upstream. |
| |
| 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> |
| Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk> |
| Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de> |
| |
| --- |
| drivers/gpu/drm/i915/i915_dma.c | 3 +++ |
| 1 file changed, 3 insertions(+) |
| |
| --- a/drivers/gpu/drm/i915/i915_dma.c |
| +++ b/drivers/gpu/drm/i915/i915_dma.c |
| @@ -2222,6 +2222,9 @@ int i915_driver_load(struct drm_device * |
| 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: |