nouveau: fix memory leak in nouveau_channel_free
authorMarcin Slusarz <marcin.slusarz@gmail.com>
Tue, 12 Jan 2010 14:32:39 +0000 (15:32 +0100)
committerMaarten Maathuis <madman2003@gmail.com>
Fri, 15 Jan 2010 22:02:48 +0000 (23:02 +0100)
nouveau/nouveau_channel.c

index 638aee3..14cf4c6 100644 (file)
@@ -102,6 +102,7 @@ nouveau_channel_free(struct nouveau_channel **chan)
        struct nouveau_channel_priv *nvchan;
        struct nouveau_device_priv *nvdev;
        struct drm_nouveau_channel_free cf;
+       int i;
 
        if (!chan || !*chan)
                return;
@@ -115,6 +116,9 @@ nouveau_channel_free(struct nouveau_channel **chan)
        nouveau_bo_unmap(nvchan->notifier_bo);
        nouveau_bo_ref(NULL, &nvchan->notifier_bo);
 
+       for (i = 0; i < nvchan->drm.nr_subchan; i++)
+               free(nvchan->base.subc[i].gr);
+
        nouveau_grobj_free(&nvchan->base.vram);
        nouveau_grobj_free(&nvchan->base.gart);
        nouveau_grobj_free(&nvchan->base.nullobj);