diff options
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 5ca132afa4f..46bb923b097 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;  |