From 39825acc66c24fd4c0de5ccb7ba067ccb1ec8072 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?La=C3=A9rcio=20de=20Sousa?= Date: Thu, 7 Nov 2013 09:31:56 -0200 Subject: [PATCH] xfree86: Keep a non-seat0 X server from touching VTs (#71258) This is my first atempt to block VT access to non-seat0 X servers. If -seat option is passed with a value different from seat0, X server won't call xf86OpenConsole(). This is needed to avoid any race condition between seat0 and non-seat0 X servers. If a non-seat0 X server opens a given VT before a seat0 one which expects to open the same VT, one can get an inactive systemd-logind graphical session for seat0. This patch was first tested in a multiseat setup with multiple video cards and works quite well. I suppose it can also make things like DontVTSwitch and -sharevts meaningless for non-seat0 seats, so it may fix bug #69477, too. Fixes: https://bugs.freedesktop.org/show_bug.cgi?id=71258 https://bugs.freedesktop.org/show_bug.cgi?id=69477 (maybe) See also: http://lists.x.org/archives/xorg-devel/2013-October/038391.html https://bugzilla.redhat.com/show_bug.cgi?id=1018196 --- hw/xfree86/common/xf86Init.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/hw/xfree86/common/xf86Init.c b/hw/xfree86/common/xf86Init.c index 91ec4c8..a678f4d 100644 --- a/hw/xfree86/common/xf86Init.c +++ b/hw/xfree86/common/xf86Init.c @@ -545,7 +545,7 @@ InitOutput(ScreenInfo * pScreenInfo, int argc, char **argv) want_hw_access = TRUE; if (!(flags & HW_SKIP_CONSOLE)) - xorgHWOpenConsole = TRUE; + xorgHWOpenConsole = !ServerIsNotSeat0(); } if (xorgHWOpenConsole) -- 1.8.1.4