[PATCH] config/udev: Respect seat assignments when assigned devices
Peter Hutterer
peter.hutterer at who-t.net
Wed Jan 28 16:47:50 PST 2015
On Thu, Jan 29, 2015 at 09:23:22AM +1000, Dave Airlie wrote:
> From: Dave Airlie <airlied at redhat.com>
>
> Jonathan Dieter posted a few patches to do this inside the Xorg
> server but it makes no sense to do it there, just have the code
> we use to probe the device list at startup check seat assignments
> using the same code we check at hotplug time.
>
> Signed-off-by: Dave Airlie <airlied at redhat.com>
> ---
> config/udev.c | 28 +++++++++++++++++++---------
> 1 file changed, 19 insertions(+), 9 deletions(-)
>
> diff --git a/config/udev.c b/config/udev.c
> index 1d2140a..9a06977 100644
> --- a/config/udev.c
> +++ b/config/udev.c
> @@ -69,6 +69,22 @@ static const char *itoa(int i)
> return itoa_buf;
> }
>
> +static Bool check_seat(struct udev_device *udev_device)
linebreak before function name
> +{
> + const char *dev_seat;
> +
> + dev_seat = udev_device_get_property_value(udev_device, "ID_SEAT");
> + if (!dev_seat)
> + dev_seat = "seat0";
> +
> + if (SeatId && strcmp(dev_seat, SeatId))
> + return FALSE;
> +
> + if (!SeatId && strcmp(dev_seat, "seat0"))
> + return FALSE;
prob want a empty line here
Reviewed-by: Peter Hutterer <peter.hutterer at who-t.net>
otherwise
Cheers,
Peter
> + return TRUE;
> +}
> +
> static void
> device_added(struct udev_device *udev_device)
> {
> @@ -83,7 +99,6 @@ device_added(struct udev_device *udev_device)
> struct udev_list_entry *set, *entry;
> struct udev_device *parent;
> int rc;
> - const char *dev_seat;
> dev_t devnum;
>
> path = udev_device_get_devnode(udev_device);
> @@ -93,14 +108,7 @@ device_added(struct udev_device *udev_device)
> if (!path || !syspath)
> return;
>
> - dev_seat = udev_device_get_property_value(udev_device, "ID_SEAT");
> - if (!dev_seat)
> - dev_seat = "seat0";
> -
> - if (SeatId && strcmp(dev_seat, SeatId))
> - return;
> -
> - if (!SeatId && strcmp(dev_seat, "seat0"))
> + if (!check_seat(udev_device))
> return;
>
> devnum = udev_device_get_devnum(udev_device);
> @@ -505,6 +513,8 @@ config_udev_odev_probe(config_odev_probe_proc_ptr probe_callback)
> goto no_probe;
> else if (strncmp(sysname, "card", 4) != 0)
> goto no_probe;
> + else if (!check_seat(udev_device))
> + goto no_probe;
>
> config_udev_odev_setup_attribs(path, syspath, major(devnum),
> minor(devnum), probe_callback);
> --
> 1.9.3
>
> _______________________________________________
> xorg-devel at lists.x.org: X.Org development
> Archives: http://lists.x.org/archives/xorg-devel
> Info: http://lists.x.org/mailman/listinfo/xorg-devel
>
More information about the xorg-devel
mailing list