Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 18 Nov 2013 22:35:02 +0000 (UTC)
From:      Aleksandr Rybalko <ray@FreeBSD.org>
To:        src-committers@freebsd.org, svn-src-user@freebsd.org
Subject:   svn commit: r258323 - user/ed/newcons/sys/dev/drm2
Message-ID:  <201311182235.rAIMZ2qK034466@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: ray
Date: Mon Nov 18 22:35:02 2013
New Revision: 258323
URL: http://svnweb.freebsd.org/changeset/base/258323

Log:
  Move mode_config up one level. DRM drivers call drm_fb_helper_restore_fbdev_mode
  	with that lock already held.
  
  Suggested by:	avg
  
  Sponsored by:	The FreeBSD Foundation

Modified:
  user/ed/newcons/sys/dev/drm2/drm_fb_helper.c

Modified: user/ed/newcons/sys/dev/drm2/drm_fb_helper.c
==============================================================================
--- user/ed/newcons/sys/dev/drm2/drm_fb_helper.c	Mon Nov 18 22:18:07 2013	(r258322)
+++ user/ed/newcons/sys/dev/drm2/drm_fb_helper.c	Mon Nov 18 22:35:02 2013	(r258323)
@@ -49,10 +49,14 @@ static void vt_restore_fbdev_mode(void *
 static void
 vt_restore_fbdev_mode(void *arg, int pending)
 {
+	struct drm_fb_helper *fb_helper;
 	struct vt_kms_softc *sc;
 
 	sc = (struct vt_kms_softc *)arg;
-	drm_fb_helper_restore_fbdev_mode(sc->fb_helper);
+	fb_helper = sc->fb_helper;
+	sx_xlock(&fb_helper->dev->mode_config.mutex);
+	drm_fb_helper_restore_fbdev_mode(fb_helper);
+	sx_xunlock(&fb_helper->dev->mode_config.mutex);
 }
 
 static int
@@ -385,9 +389,7 @@ bool drm_fb_helper_restore_fbdev_mode(st
 	int i, ret;
 	for (i = 0; i < fb_helper->crtc_count; i++) {
 		struct drm_mode_set *mode_set = &fb_helper->crtc_info[i].mode_set;
-		sx_xlock(&fb_helper->dev->mode_config.mutex);
 		ret = drm_crtc_helper_set_config(mode_set);
-		sx_xunlock(&fb_helper->dev->mode_config.mutex);
 		if (ret)
 			error = true;
 	}



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201311182235.rAIMZ2qK034466>