diff --git a/shared-core/nouveau_fifo.c b/shared-core/nouveau_fifo.c index d8fda27..b6f149e 100644 --- a/shared-core/nouveau_fifo.c +++ b/shared-core/nouveau_fifo.c @@ -465,6 +465,9 @@ void nouveau_fifo_free(struct nouveau_channel *chan) /* Deallocate push buffer */ nouveau_gpuobj_ref_del(dev, &chan->pushbuf); if (chan->pushbuf_mem) { + /* iounmap here, because it can't be caught completely in nouveau_dma.c */ + if (chan->pushbuf_mem->map) + drm_core_ioremapfree(chan->pushbuf_mem->map, dev); nouveau_mem_free(dev, chan->pushbuf_mem); chan->pushbuf_mem = NULL; }