diff --git a/drivers/gpu/drm/drm_stub.c b/drivers/gpu/drm/drm_stub.c index 5ca132a..d196701 100644 --- a/drivers/gpu/drm/drm_stub.c +++ b/drivers/gpu/drm/drm_stub.c @@ -124,6 +124,23 @@ static void drm_master_destroy(struct kref *kref) if (dev->driver->master_destroy) dev->driver->master_destroy(dev, master); + { + int count; + do + { + struct drm_map_list *entry; + count = 0; + list_for_each_entry(entry, &dev->maplist, head) { + if (entry->master == master) { + int r = drm_rmmap_locked(dev, entry->map); + BUG_ON(r != 0); + count++; + break; + } + } + } while(count > 0); + } + if (master->unique) { drm_free(master->unique, master->unique_size, DRM_MEM_DRIVER); master->unique = NULL;