aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/char
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/char')
-rw-r--r--drivers/char/drm/drm_drv.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/drivers/char/drm/drm_drv.c b/drivers/char/drm/drm_drv.c
index f9ecc8414b8a..654b95cdd9a3 100644
--- a/drivers/char/drm/drm_drv.c
+++ b/drivers/char/drm/drm_drv.c
@@ -155,10 +155,12 @@ int drm_lastclose(drm_device_t * dev)
155 del_timer(&dev->timer); 155 del_timer(&dev->timer);
156 156
157 /* Clear pid list */ 157 /* Clear pid list */
158 list_for_each_entry_safe(pt, next, &dev->magicfree, head) { 158 if (dev->magicfree.next) {
159 list_del(&pt->head); 159 list_for_each_entry_safe(pt, next, &dev->magicfree, head) {
160 drm_ht_remove_item(&dev->magiclist, &pt->hash_item); 160 list_del(&pt->head);
161 drm_free(pt, sizeof(*pt), DRM_MEM_MAGIC); 161 drm_ht_remove_item(&dev->magiclist, &pt->hash_item);
162 drm_free(pt, sizeof(*pt), DRM_MEM_MAGIC);
163 }
162 } 164 }
163 165
164 /* Clear AGP information */ 166 /* Clear AGP information */