Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 9d59e8a1 authored by Ben Skeggs's avatar Ben Skeggs
Browse files

drm/nouveau: require explicit unmap of kmapped bos



Signed-off-by: default avatarBen Skeggs <bskeggs@redhat.com>
parent e694438d
Loading
Loading
Loading
Loading
+2 −3
Original line number Diff line number Diff line
@@ -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,6 +303,7 @@ nouveau_bo_map(struct nouveau_bo *nvbo)
void
nouveau_bo_unmap(struct nouveau_bo *nvbo)
{
	if (nvbo)
		ttm_bo_kunmap(&nvbo->kmap);
}

+1 −0
Original line number Diff line number Diff line
@@ -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);
	}
+1 −0
Original line number Diff line number Diff line
@@ -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);
}
+2 −0
Original line number Diff line number Diff line
@@ -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);
+1 −0
Original line number Diff line number Diff line
@@ -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)