summaryrefslogtreecommitdiff
path: root/drivers/gpu/drm/drm_stub.c
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2009-01-26 18:16:11 (GMT)
committerLinus Torvalds <torvalds@linux-foundation.org>2009-01-26 18:16:11 (GMT)
commit832fb4a01ca27ded735421de2b090f03e20039fc (patch)
treeeceb6e49b6752218377a361e7050a3f9f622a44e /drivers/gpu/drm/drm_stub.c
parent4a4565921aa9255be01921ff8ae339fa7b0a5468 (diff)
parent2906f0258770d3a9c4e65364df8acc904e148bbe (diff)
downloadlinux-fsl-qoriq-832fb4a01ca27ded735421de2b090f03e20039fc.tar.xz
Merge branch 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6
* 'drm-fixes' of git://git.kernel.org/pub/scm/linux/kernel/git/airlied/drm-2.6: drm/i915: Fix cursor physical address choice to match the 2D driver. drm: stash AGP include under the do-we-have-AGP ifdef drm: don't whine about not reading EDID data drm/i915: hook up LVDS DPMS property drm/i915: remove unnecessary debug output in KMS init i915: fix freeing path for gem phys objects. drm: create mode_config idr lock drm: fix leak of device mappings since multi-master changes.
Diffstat (limited to 'drivers/gpu/drm/drm_stub.c')
-rw-r--r--drivers/gpu/drm/drm_stub.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c
index 5ca132a..46bb923 100644
--- a/drivers/gpu/drm/drm_stub.c
+++ b/drivers/gpu/drm/drm_stub.c
@@ -118,12 +118,20 @@ static void drm_master_destroy(struct kref *kref)
struct drm_master *master = container_of(kref, struct drm_master, refcount);
struct drm_magic_entry *pt, *next;
struct drm_device *dev = master->minor->dev;
+ struct drm_map_list *r_list, *list_temp;
list_del(&master->head);
if (dev->driver->master_destroy)
dev->driver->master_destroy(dev, master);
+ list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head) {
+ if (r_list->master == master) {
+ drm_rmmap_locked(dev, r_list->map);
+ r_list = NULL;
+ }
+ }
+
if (master->unique) {
drm_free(master->unique, master->unique_size, DRM_MEM_DRIVER);
master->unique = NULL;