<div dir="ltr">Hi there!<div><br></div><div>Could this other one by Oleg Samarin be related (except for the xf86Bus.c patch, which I've sent previously and is already under review)?</div><div><br></div><div><a href="http://thread.gmane.org/gmane.comp.freedesktop.xorg.devel/37377">http://thread.gmane.org/gmane.comp.freedesktop.xorg.devel/37377</a><br>

</div></div><div class="gmail_extra"><br clear="all"><div><div dir="ltr">CANTATE DOMINO CANTICUM NOVUM<div>QUIA MIRABILIA FECIT</div><div><br></div><div>Laércio</div></div></div>
<br><br><div class="gmail_quote">2014-03-11 4:09 GMT-03:00 Hans de Goede <span dir="ltr"><<a href="mailto:hdegoede@redhat.com" target="_blank">hdegoede@redhat.com</a>></span>:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

Hi,<br>
<div class=""><br>
On 03/11/2014 05:32 AM, Peter Hutterer wrote:<br>
> Only devices from the config backend have their attributes set, devices from<br>
> the xorg.conf only have Option "Device". That option is also set by the<br>
> config backend, so use it.<br>
><br>
> And since the config backend sets our major/minor but xorg.conf devices don't<br>
> have that set, make sure we try to stat it first where needed.<br>
><br>
> Signed-off-by: Peter Hutterer <<a href="mailto:peter.hutterer@who-t.net">peter.hutterer@who-t.net</a>><br>
<br>
</div>Looks good:<br>
<br>
Reviewed-by: Hans de Goede <<a href="mailto:hdegoede@redhat.com">hdegoede@redhat.com</a>><br>
<br>
Regards,<br>
<br>
Hans<br>
<div class="HOEnZb"><div class="h5"><br>
<br>
> ---<br>
> Fixes a crash when running with hotplug disabled and fixed devices in the<br>
> xorg.conf<br>
><br>
>  hw/xfree86/common/xf86Xinput.c | 22 ++++++++++++++++++++--<br>
>  1 file changed, 20 insertions(+), 2 deletions(-)<br>
><br>
> diff --git a/hw/xfree86/common/xf86Xinput.c b/hw/xfree86/common/xf86Xinput.c<br>
> index 7c3e479..36b92a9 100644<br>
> --- a/hw/xfree86/common/xf86Xinput.c<br>
> +++ b/hw/xfree86/common/xf86Xinput.c<br>
> @@ -81,6 +81,7 @@<br>
><br>
>  #include <stdarg.h><br>
>  #include <stdint.h>             /* for int64_t */<br>
> +#include <sys/stat.h><br>
>  #include <unistd.h><br>
><br>
>  #include "mi.h"<br>
> @@ -804,6 +805,18 @@ xf86InputDevicePostInit(DeviceIntPtr dev)<br>
>      return Success;<br>
>  }<br>
><br>
> +static void<br>
> +xf86stat(const char *path, int *maj, int *min)<br>
> +{<br>
> +    struct stat st;<br>
> +<br>
> +    if (stat(path, &st) == -1)<br>
> +        return;<br>
> +<br>
> +    *maj = major(st.st_rdev);<br>
> +    *min = minor(st.st_rdev);<br>
> +}<br>
> +<br>
>  /**<br>
>   * Create a new input device, activate and enable it.<br>
>   *<br>
> @@ -828,6 +841,7 @@ xf86NewInputDevice(InputInfoPtr pInfo, DeviceIntPtr *pdev, BOOL enable)<br>
>      DeviceIntPtr dev = NULL;<br>
>      Bool paused;<br>
>      int rval;<br>
> +    const char *path;<br>
><br>
>      /* Memory leak for every attached device if we don't<br>
>       * test if the module is already loaded first */<br>
> @@ -841,9 +855,13 @@ xf86NewInputDevice(InputInfoPtr pInfo, DeviceIntPtr *pdev, BOOL enable)<br>
>          goto unwind;<br>
>      }<br>
><br>
> -    if (drv->capabilities & XI86_DRV_CAP_SERVER_FD) {<br>
> +    path = xf86CheckStrOption(pInfo->options, "Device", NULL);<br>
> +    if (path && pInfo->major == 0 && pInfo->minor == 0)<br>
> +        xf86stat(path, &pInfo->major, &pInfo->minor);<br>
> +<br>
> +    if (path && (drv->capabilities & XI86_DRV_CAP_SERVER_FD)){<br>
>          int fd = systemd_logind_take_fd(pInfo->major, pInfo->minor,<br>
> -                                        pInfo->attrs->device, &paused);<br>
> +                                        path, &paused);<br>
>          if (fd != -1) {<br>
>              if (paused) {<br>
>                  /* Put on new_input_devices list for delayed probe */<br>
><br>
</div></div><div class="HOEnZb"><div class="h5">_______________________________________________<br>
<a href="mailto:xorg-devel@lists.x.org">xorg-devel@lists.x.org</a>: X.Org development<br>
Archives: <a href="http://lists.x.org/archives/xorg-devel" target="_blank">http://lists.x.org/archives/xorg-devel</a><br>
Info: <a href="http://lists.x.org/mailman/listinfo/xorg-devel" target="_blank">http://lists.x.org/mailman/listinfo/xorg-devel</a><br>
</div></div></blockquote></div><br></div>