diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-26 10:16:11 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2009-01-26 10:16:11 -0800 |
commit | 832fb4a01ca27ded735421de2b090f03e20039fc (patch) | |
tree | eceb6e49b6752218377a361e7050a3f9f622a44e /drivers/gpu/drm/drm_stub.c | |
parent | 4a4565921aa9255be01921ff8ae339fa7b0a5468 (diff) | |
parent | 2906f0258770d3a9c4e65364df8acc904e148bbe (diff) | |
download | kernel_samsung_smdk4412-832fb4a01ca27ded735421de2b090f03e20039fc.zip kernel_samsung_smdk4412-832fb4a01ca27ded735421de2b090f03e20039fc.tar.gz kernel_samsung_smdk4412-832fb4a01ca27ded735421de2b090f03e20039fc.tar.bz2 |
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.c | 8 |
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; |