nouveau: fail channel creation if pushbuf init fails
authorBen Skeggs <bskeggs@redhat.com>
Thu, 21 Jan 2010 05:17:26 +0000 (15:17 +1000)
committerBen Skeggs <bskeggs@redhat.com>
Thu, 21 Jan 2010 05:18:15 +0000 (15:18 +1000)
nouveau/nouveau_channel.c

index 01d6681..5622c1d 100644 (file)
@@ -90,7 +90,11 @@ nouveau_channel_alloc(struct nouveau_device *dev, uint32_t fb_ctxdma,
                return ret;
        }
 
-       nouveau_pushbuf_init(&nvchan->base);
+       ret = nouveau_pushbuf_init(&nvchan->base);
+       if (ret) {
+               nouveau_channel_free((void *)&nvchan);
+               return ret;
+       }
 
        *chan = &nvchan->base;
        return 0;