diff options
author | Daniel Vetter <daniel.vetter@ffwll.ch> | 2011-10-26 16:28:07 -0400 |
---|---|---|
committer | Daniel Vetter <daniel.vetter@ffwll.ch> | 2011-12-21 18:33:20 -0500 |
commit | 763240deb423c477b4d46c23e0b582099d4b8753 (patch) | |
tree | 724f804e38eb00a23f6d1e3ca4b50ec89d1e9208 /drivers/gpu/drm/sis | |
parent | aa38e2e01521f88e9b0230c0236d2bd89d0af0ed (diff) |
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.c | 2 |
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, | |||
143 | item = drm_sman_alloc(&dev_priv->sman, pool, mem->size, 0, 0); | 143 | item = drm_sman_alloc(&dev_priv->sman, pool, mem->size, 0, 0); |
144 | 144 | ||
145 | if (item) { | 145 | if (item) { |
146 | list_move(&item->owner_list, &file_priv->obj_list); | 146 | list_add(&item->owner_list, &file_priv->obj_list); |
147 | mem->offset = ((pool == 0) ? | 147 | mem->offset = ((pool == 0) ? |
148 | dev_priv->vram_offset : dev_priv->agp_offset) + | 148 | dev_priv->vram_offset : dev_priv->agp_offset) + |
149 | (item->mm-> | 149 | (item->mm-> |