summaryrefslogtreecommitdiffstats
path: root/drivers/gpu/drm/sis
diff options
context:
space:
mode:
authorDaniel Vetter <daniel.vetter@ffwll.ch>2011-10-26 22:28:07 +0200
committerDaniel Vetter <daniel.vetter@ffwll.ch>2011-12-22 00:33:20 +0100
commit763240deb423c477b4d46c23e0b582099d4b8753 (patch)
tree724f804e38eb00a23f6d1e3ca4b50ec89d1e9208 /drivers/gpu/drm/sis
parentaa38e2e01521f88e9b0230c0236d2bd89d0af0ed (diff)
downloadlinux-763240deb423c477b4d46c23e0b582099d4b8753.tar.gz
linux-763240deb423c477b4d46c23e0b582099d4b8753.tar.bz2
linux-763240deb423c477b4d46c23e0b582099d4b8753.zip
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/sis')
-rw-r--r--drivers/gpu/drm/sis/sis_mm.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/sis/sis_mm.c b/drivers/gpu/drm/sis/sis_mm.c
index a70b1bbff2e6..c76a118812a9 100644
--- a/drivers/gpu/drm/sis/sis_mm.c
+++ b/drivers/gpu/drm/sis/sis_mm.c
@@ -143,7 +143,7 @@ static int sis_drm_alloc(struct drm_device *dev, struct drm_file *file,
item = drm_sman_alloc(&dev_priv->sman, pool, mem->size, 0, 0);
if (item) {
- list_move(&item->owner_list, &file_priv->obj_list);
+ list_add(&item->owner_list, &file_priv->obj_list);
mem->offset = ((pool == 0) ?
dev_priv->vram_offset : dev_priv->agp_offset) +
(item->mm->