[PATCH RESEND] xfree86: Keep a non-seat0 X server from touching VTs (#71258)

Mark Kettenis mark.kettenis at xs4all.nl
Thu Dec 12 09:00:10 PST 2013


> From: =?UTF-8?q?La=C3=A9rcio=20de=20Sousa?= <lbsousajr at gmail.com>
> Date: Thu, 12 Dec 2013 14:22:48 -0200
> 
> Updated patch following Hans de Goede's advice.
> 
> 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.

It's not obvious to me that this is the right approach.  Other OS'es
support proper VT's on non-primary graphics cards.  OpenBSD is such an
OS, although we don't particularly care about multi-seat setups at the
moment and don't actually use the seatWhatever stuff at the moment.

But if this gets committed, please use

    if ((flags & HW_SKIP_CONSOLE)) || !(ServerIsNotSeat0())

since the !HW_SKIP_CONSOLE condition is the more important one since
it applies to all platforms.  Whereas the ServerIsNotSeat0 check only
applies to Linux setups.

Cheers,

Mark



More information about the xorg-devel mailing list