Commit b7cb6c01 authored by Ben Skeggs's avatar Ben Skeggs

drm/nouveau: modify gpuobj/ntfy takedown ordering

gpuobj really needs splitting into channel/gpuobj code instead...
Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent 639212d0
...@@ -27,6 +27,7 @@ ...@@ -27,6 +27,7 @@
#include "nouveau_drv.h" #include "nouveau_drv.h"
#include "nouveau_drm.h" #include "nouveau_drm.h"
#include "nouveau_dma.h" #include "nouveau_dma.h"
#include "nouveau_ramht.h"
static int static int
nouveau_channel_pushbuf_ctxdma_init(struct nouveau_channel *chan) nouveau_channel_pushbuf_ctxdma_init(struct nouveau_channel *chan)
...@@ -316,8 +317,9 @@ nouveau_channel_put_unlocked(struct nouveau_channel **pchan) ...@@ -316,8 +317,9 @@ nouveau_channel_put_unlocked(struct nouveau_channel **pchan)
nouveau_bo_unpin(chan->pushbuf_bo); nouveau_bo_unpin(chan->pushbuf_bo);
nouveau_bo_ref(NULL, &chan->pushbuf_bo); nouveau_bo_ref(NULL, &chan->pushbuf_bo);
} }
nouveau_gpuobj_channel_takedown(chan); nouveau_ramht_ref(NULL, &chan->ramht, chan);
nouveau_notifier_takedown_channel(chan); nouveau_notifier_takedown_channel(chan);
nouveau_gpuobj_channel_takedown(chan);
nouveau_channel_ref(NULL, pchan); nouveau_channel_ref(NULL, pchan);
} }
......
...@@ -844,8 +844,6 @@ nouveau_gpuobj_channel_takedown(struct nouveau_channel *chan) ...@@ -844,8 +844,6 @@ nouveau_gpuobj_channel_takedown(struct nouveau_channel *chan)
NV_DEBUG(dev, "ch%d\n", chan->id); NV_DEBUG(dev, "ch%d\n", chan->id);
nouveau_ramht_ref(NULL, &chan->ramht, chan);
nouveau_vm_ref(NULL, &chan->vm, chan->vm_pd); nouveau_vm_ref(NULL, &chan->vm, chan->vm_pd);
nouveau_gpuobj_ref(NULL, &chan->vm_pd); nouveau_gpuobj_ref(NULL, &chan->vm_pd);
......
...@@ -38,6 +38,7 @@ nv50_evo_channel_del(struct nouveau_channel **pevo) ...@@ -38,6 +38,7 @@ nv50_evo_channel_del(struct nouveau_channel **pevo)
return; return;
*pevo = NULL; *pevo = NULL;
nouveau_ramht_ref(NULL, &evo->ramht, evo);
nouveau_gpuobj_channel_takedown(evo); nouveau_gpuobj_channel_takedown(evo);
nouveau_bo_unmap(evo->pushbuf_bo); nouveau_bo_unmap(evo->pushbuf_bo);
nouveau_bo_ref(NULL, &evo->pushbuf_bo); nouveau_bo_ref(NULL, &evo->pushbuf_bo);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment