summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/via/via_mm.c
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2011-10-27 00:28:07 +0400
committerDaniel Vetter <daniel.vetter@ffwll.ch>2011-12-22 03:33:20 +0400
commit763240deb423c477b4d46c23e0b582099d4b8753 (patch)
tree724f804e38eb00a23f6d1e3ca4b50ec89d1e9208 /drivers/gpu/drm/via/via_mm.c
parentaa38e2e01521f88e9b0230c0236d2bd89d0af0ed (diff)
downloadlinux-763240deb423c477b4d46c23e0b582099d4b8753.tar.xz
drm/sman: rip out owner tracking
In contrast to kms drivers, sis/via _always_ associated a buffer with a drm fd. So by the time we reach lastclose, all open drm fds are gone and with them their associated objects. So when sis/via call drm_sman_cleanup in their lastclose funcs, that will free 0 objects. The owner tracking now serves no purpose at all, hence rip it ou. We can't kill the corresponding fields in struct drm_memblock_item yet because we hijack these in the new driver private owner tracking. But now that drm_sman.c doesn't touch ->owner_list anymore, we need to kill the list_move hack and properly add the item to the file_priv list. Also leave the list_del(&obj->owner_list) in drm_sman_free for the moment, it will move to the drivers when sman disappears completely. v2: Remove the redundant INIT_LIST_HEAD as noted by Chris Wilson Signed-off-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Diffstat (limited to 'drivers/gpu/drm/via/via_mm.c')
-rw-r--r--drivers/gpu/drm/via/via_mm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/via/via_mm.c b/drivers/gpu/drm/via/via_mm.c
index 19bb77cdeb46..e0110bc27606 100644
--- a/drivers/gpu/drm/via/via_mm.c
+++ b/drivers/gpu/drm/via/via_mm.c
@@ -141,7 +141,7 @@ int via_mem_alloc(struct drm_device *dev, void *data,
item = drm_sman_alloc(&dev_priv->sman, mem->type, tmpSize, 0, 0);
if (item) {
- list_move(&item->owner_list, &file_priv->obj_list);
+ list_add(&item->owner_list, &file_priv->obj_list);
mem->offset = ((mem->type == VIA_MEM_VIDEO) ?
dev_priv->vram_offset : dev_priv->agp_offset) +
(item->mm->