summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBen Skeggs <bskeggs@redhat.com>2009-03-06 08:51:04 +1000
committerBen Skeggs <bskeggs@redhat.com>2009-03-06 09:09:08 +1000
commit7946b7615fbfaffbb40914db94e094bca7325541 (patch)
tree580cdc5c00bbbd3f9500af65b814eddd9162f3d9
parentc921f402b743e12e19e0816bde7917953352d921 (diff)
nouveau: fix oops in gem_new() failure path
It turns out drm_bo_usage_deref_locked doesn't set the pointer it's passed to NULL after destroying the object. So, this double free made things go boom!
-rw-r--r--linux-core/nouveau_gem.c2
1 files changed, 0 insertions, 2 deletions
diff --git a/linux-core/nouveau_gem.c b/linux-core/nouveau_gem.c
index d290f26e..62d68a12 100644
--- a/linux-core/nouveau_gem.c
+++ b/linux-core/nouveau_gem.c
@@ -114,8 +114,6 @@ nouveau_gem_new(struct drm_device *dev, struct nouveau_channel *chan,
out:
if (ret) {
mutex_lock(&dev->struct_mutex);
- if (ngem->bo)
- drm_bo_usage_deref_locked(&ngem->bo);
drm_gem_object_unreference(gem);
mutex_unlock(&dev->struct_mutex);
return ret;