Hi,

On 19-01-15 16:02, Jonathan Dieter wrote:
Currently xorg ignores the seat assignments for drm devices because the devices 
are initialized earlier in the code.  Depending on race conditions, the first X 
server will get more than one of the drm devices, which breaks multiseat 
systems.

This patch fixes that by rejecting drm devices that haven't been assigned to 
our seat.  The code has been mostly taken from config/udev.c and modified.

This patch is against HEAD, but also applies cleanly and has been tested 
against 1.16.2.901.

Thanks for the patch, I've one minor comment:

Can you please rewrite this bit:

+        if (SeatId && strcmp(dev_seat, SeatId)) {
+            LogMessage(X_INFO, "xfree86: Not adding drm device (%s): Wrong seat: 
%s\n", path, dev_seat);
+            udev_unref(udev);
+            udev_device_unref(udev_device);
+            goto out_free;
+        }
+
+        if (!SeatId && strcmp(dev_seat, "seat0")) {
+            LogMessage(X_INFO, "xfree86: Not adding drm device (%s): Wrong seat: 
%s\n", path, dev_seat);
+            udev_unref(udev);
+            udev_device_unref(udev_device);
+            goto out_free;
+        }

as:

+        if ((SeatId && strcmp(dev_seat, SeatId)) ||
+            (!SeatId && strcmp(dev_seat, "seat0"))) {
+            LogMessage(X_INFO, "xfree86: Not adding drm device (%s): Wrong seat: 
%s\n", path, dev_seat);
+            udev_unref(udev);
+            udev_device_unref(udev_device);
+            goto out_free;
+        }

And then post a v2.

Regards,

Hans

p.s.

It is easier for reviewers if you send patches inline, git send-email does this 
properly for you.
_______________________________________________
xorg-devel@lists.x.org: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to