[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