OSDN Git Service

drm/exynos: drop struct_mutex from fbdev setup
authorDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 30 Mar 2016 09:40:48 +0000 (11:40 +0200)
committerDaniel Vetter <daniel.vetter@ffwll.ch>
Wed, 20 Apr 2016 10:58:03 +0000 (12:58 +0200)
Doesn't protect anything at all, and probably just here because a long
time ago dev->struct_mutex was required to allocate gem objects.

With this patch exynos is completely struct_mutex free!

Cc: Inki Dae <inki.dae@samsung.com>
Signed-off-by: Daniel Vetter <daniel.vetter@intel.com>
Link: http://patchwork.freedesktop.org/patch/msgid/1459330852-27668-10-git-send-email-daniel.vetter@ffwll.ch
drivers/gpu/drm/exynos/exynos_drm_fbdev.c

index 4ae860c..4656cd6 100644 (file)
@@ -138,8 +138,6 @@ static int exynos_drm_fbdev_create(struct drm_fb_helper *helper,
        mode_cmd.pixel_format = drm_mode_legacy_fb_format(sizes->surface_bpp,
                                                          sizes->surface_depth);
 
-       mutex_lock(&dev->struct_mutex);
-
        size = mode_cmd.pitches[0] * mode_cmd.height;
 
        exynos_gem = exynos_drm_gem_create(dev, EXYNOS_BO_CONTIG, size);
@@ -154,10 +152,8 @@ static int exynos_drm_fbdev_create(struct drm_fb_helper *helper,
                                                   size);
        }
 
-       if (IS_ERR(exynos_gem)) {
-               ret = PTR_ERR(exynos_gem);
-               goto out;
-       }
+       if (IS_ERR(exynos_gem))
+               return PTR_ERR(exynos_gem);
 
        exynos_fbdev->exynos_gem = exynos_gem;
 
@@ -173,7 +169,6 @@ static int exynos_drm_fbdev_create(struct drm_fb_helper *helper,
        if (ret < 0)
                goto err_destroy_framebuffer;
 
-       mutex_unlock(&dev->struct_mutex);
        return ret;
 
 err_destroy_framebuffer:
@@ -181,13 +176,12 @@ err_destroy_framebuffer:
 err_destroy_gem:
        exynos_drm_gem_destroy(exynos_gem);
 
-/*
- * if failed, all resources allocated above would be released by
- * drm_mode_config_cleanup() when drm_load() had been called prior
- * to any specific driver such as fimd or hdmi driver.
- */
-out:
-       mutex_unlock(&dev->struct_mutex);
+       /*
+        * if failed, all resources allocated above would be released by
+        * drm_mode_config_cleanup() when drm_load() had been called prior
+        * to any specific driver such as fimd or hdmi driver.
+        */
+
        return ret;
 }