drm/nouveau: require explicit unmap of kmapped bos
Signed-off-by: Ben Skeggs <bskeggs@redhat.com>
This commit is contained in:
parent
e694438d2f
commit
9d59e8a1fc
@ -58,8 +58,6 @@ nouveau_bo_del_ttm(struct ttm_buffer_object *bo)
|
||||
struct drm_device *dev = dev_priv->dev;
|
||||
struct nouveau_bo *nvbo = nouveau_bo(bo);
|
||||
|
||||
ttm_bo_kunmap(&nvbo->kmap);
|
||||
|
||||
if (unlikely(nvbo->gem))
|
||||
DRM_ERROR("bo %p still attached to GEM object\n", bo);
|
||||
|
||||
@ -305,7 +303,8 @@ nouveau_bo_map(struct nouveau_bo *nvbo)
|
||||
void
|
||||
nouveau_bo_unmap(struct nouveau_bo *nvbo)
|
||||
{
|
||||
ttm_bo_kunmap(&nvbo->kmap);
|
||||
if (nvbo)
|
||||
ttm_bo_kunmap(&nvbo->kmap);
|
||||
}
|
||||
|
||||
u16
|
||||
|
@ -310,6 +310,7 @@ nouveau_channel_free(struct nouveau_channel *chan)
|
||||
/* Release the channel's resources */
|
||||
nouveau_gpuobj_ref_del(dev, &chan->pushbuf);
|
||||
if (chan->pushbuf_bo) {
|
||||
nouveau_bo_unmap(chan->pushbuf_bo);
|
||||
nouveau_bo_unpin(chan->pushbuf_bo);
|
||||
nouveau_bo_ref(NULL, &chan->pushbuf_bo);
|
||||
}
|
||||
|
@ -718,6 +718,7 @@ static void nv_crtc_destroy(struct drm_crtc *crtc)
|
||||
|
||||
drm_crtc_cleanup(crtc);
|
||||
|
||||
nouveau_bo_unmap(nv_crtc->cursor.nvbo);
|
||||
nouveau_bo_ref(NULL, &nv_crtc->cursor.nvbo);
|
||||
kfree(nv_crtc);
|
||||
}
|
||||
|
@ -338,7 +338,9 @@ nv50_crtc_destroy(struct drm_crtc *crtc)
|
||||
|
||||
nv50_cursor_fini(nv_crtc);
|
||||
|
||||
nouveau_bo_unmap(nv_crtc->lut.nvbo);
|
||||
nouveau_bo_ref(NULL, &nv_crtc->lut.nvbo);
|
||||
nouveau_bo_unmap(nv_crtc->cursor.nvbo);
|
||||
nouveau_bo_ref(NULL, &nv_crtc->cursor.nvbo);
|
||||
kfree(nv_crtc->mode);
|
||||
kfree(nv_crtc);
|
||||
|
@ -42,6 +42,7 @@ nv50_evo_channel_del(struct nouveau_channel **pchan)
|
||||
*pchan = NULL;
|
||||
|
||||
nouveau_gpuobj_channel_takedown(chan);
|
||||
nouveau_bo_unmap(chan->pushbuf_bo);
|
||||
nouveau_bo_ref(NULL, &chan->pushbuf_bo);
|
||||
|
||||
if (chan->user)
|
||||
|
Loading…
Reference in New Issue
Block a user