drm: Push struct_mutex into ->master_destroy
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Tue, 26 Apr 2016 17:29:38 +0000 (19:29 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 27 Apr 2016 06:46:41 +0000 (08:46 +0200)
Only two drivers implement this hook. vmwgfx (which doesn't need it
really) and legacy radeon (which since v1 has been nuked, yay).

v1: Rebase over radeon ums removal.

Cc: Thomas Hellstrom <thellstrom@vmware.com>
Cc: Alex Deucher <alexdeucher@gmail.com>
Reviewed-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Alex Deucher <alexander.deucher@amd.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1461691808-12414-6-git-send-email-daniel.vetter@ffwll.ch
drivers/gpu/drm/drm_drv.c

index f8a7a6e66b7e285b6db9aede95727e94b6544bce..55273f8f3acbcb9c9e60e3b0c2d942c74c6ee850 100644 (file)
@@ -123,10 +123,10 @@ static void drm_master_destroy(struct kref *kref)
        struct drm_device *dev = master->minor->dev;
        struct drm_map_list *r_list, *list_temp;
 
-       mutex_lock(&dev->struct_mutex);
        if (dev->driver->master_destroy)
                dev->driver->master_destroy(dev, master);
 
+       mutex_lock(&dev->struct_mutex);
        list_for_each_entry_safe(r_list, list_temp, &dev->maplist, head) {
                if (r_list->master == master) {
                        drm_legacy_rmmap_locked(dev, r_list->map);