summaryrefslogtreecommitdiff
path: root/linux-core/drm_drv.c
diff options
context:
space:
mode:
authorDave Airlie <airlied@linux.ie>2007-06-10 15:40:10 +1000
committerDave Airlie <airlied@linux.ie>2007-06-10 15:40:21 +1000
commit280083d4a2a12a1ff6dc1b068553a4ae8960200c (patch)
treee03b6cb4825b18412a0984af33dfb4c8fd573493 /linux-core/drm_drv.c
parent31815730732a5d2a446aa316a5b4d837766762e6 (diff)
use krh's idr mods to remove lists from idr code
Diffstat (limited to 'linux-core/drm_drv.c')
-rw-r--r--linux-core/drm_drv.c12
1 files changed, 2 insertions, 10 deletions
diff --git a/linux-core/drm_drv.c b/linux-core/drm_drv.c
index 1695a792..d5eb9713 100644
--- a/linux-core/drm_drv.c
+++ b/linux-core/drm_drv.c
@@ -142,7 +142,6 @@ int drm_lastclose(drm_device_t * dev)
drm_magic_entry_t *pt, *next;
drm_map_list_t *r_list, *list_t;
drm_vma_entry_t *vma, *vma_temp;
- struct drm_drawable_list *drw_entry, *drw_temp;
int i;
DRM_DEBUG("\n");
@@ -167,16 +166,9 @@ int drm_lastclose(drm_device_t * dev)
drm_irq_uninstall(dev);
/* Free drawable information memory */
- list_for_each_entry_safe(drw_entry, drw_temp, &dev->drwlist, head) {
- drm_free(drw_entry->info.rects, drw_entry->info.num_rects *
- sizeof(drm_clip_rect_t), DRM_MEM_BUFS);
-
- idr_remove(&dev->drw_idr, drw_entry->id);
- list_del(&drw_entry->head);
- drm_free(drw_entry, sizeof(struct drm_drawable_list), DRM_MEM_BUFS);
- }
-
mutex_lock(&dev->struct_mutex);
+
+ drm_drawable_free_all(dev);
del_timer(&dev->timer);
if (dev->unique) {