diff options
-rw-r--r-- | nouveau/nouveau_channel.c | 6 |
1 files changed, 5 insertions, 1 deletions
diff --git a/nouveau/nouveau_channel.c b/nouveau/nouveau_channel.c index 01d6681b..5622c1d9 100644 --- a/nouveau/nouveau_channel.c +++ b/nouveau/nouveau_channel.c @@ -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; |