diff options
author | Ray Strode <rstrode@redhat.com> | 2015-02-27 07:49:17 -0500 |
---|---|---|
committer | Ray Strode <rstrode@redhat.com> | 2015-02-27 10:31:42 -0500 |
commit | 5dcbc5ac1e8877787587d916a0bbcc6c4136a7c0 (patch) | |
tree | c2aab9c35eca4fe7b6dc50dcc778f653d887de78 | |
parent | 4e68490ff423cf27c0a00176ba4f75b17406d2a5 (diff) | |
download | gdm-5dcbc5ac1e8877787587d916a0bbcc6c4136a7c0.tar.gz |
session: jump to VT up front for X sessions
It turns out that in order for X to work without being
run as root, it needs to have its VT be active at start up.
This is because it bails out of some of its logind codepaths
if it gets given a "paused" device by logind, and then sometimes
fails in its fallback code paths as it races to open
/dev/dri/card0 while logind is still giving the user
permissions to it.
As a workaround, until X is fixed, this commit jumps to the VT up
front before starting X. That adds flicker, which we'll address in
a follow up commit.
https://bugzilla.gnome.org/show_bug.cgi?id=745031
-rw-r--r-- | daemon/gdm-session.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c index c66a6ff3..27eb531a 100644 --- a/daemon/gdm-session.c +++ b/daemon/gdm-session.c @@ -2945,10 +2945,11 @@ gdm_session_get_display_mode (GdmSession *self) return GDM_SESSION_DISPLAY_MODE_LOGIND_MANAGED; } - /* user based X sessions start on a new VT now and are managed - * by logind + /* user based X sessions need us to allocate a VT for them + * and jump to it up front, because the X servers logind support + * currently relies on X running in the foreground VT. */ - return GDM_SESSION_DISPLAY_MODE_LOGIND_MANAGED; + return GDM_SESSION_DISPLAY_MODE_NEW_VT; } void |