[PATCH evdev] Don't delete the device on ENODEV

Chase Douglas chase.douglas at canonical.com
Mon Aug 6 09:43:33 PDT 2012


On 07/31/2012 08:15 PM, Peter Hutterer wrote:
> This is signal handler code and we cannot clean up properly while in the
> signal handler. So reduce the code to removing the signal handler and let
> the device be cleaned up later.
>
> If hotplugging is on, the server will remove it when the config backend says
> so and if it is off, the server will remove it on shutdown.
>
> Signed-off-by: Peter Hutterer <peter.hutterer at who-t.net>
> ---
>   src/evdev.c |    6 +-----
>   1 file changed, 1 insertion(+), 5 deletions(-)
>
> diff --git a/src/evdev.c b/src/evdev.c
> index f54b66f..b832d98 100644
> --- a/src/evdev.c
> +++ b/src/evdev.c
> @@ -1113,12 +1113,8 @@ EvdevReadInput(InputInfoPtr pInfo)
>           if (len <= 0)
>           {
>               if (errno == ENODEV) /* May happen after resume */
> -            {
> -                EvdevMBEmuFinalize(pInfo);
> -                Evdev3BEmuFinalize(pInfo);
>                   xf86RemoveEnabledDevice(pInfo);
> -                EvdevCloseDevice(pInfo);
> -            } else if (errno != EAGAIN)
> +            else if (errno != EAGAIN)
>               {
>                   /* We use X_NONE here because it doesn't alloc */
>                   xf86MsgVerb(X_NONE, 0, "%s: Read error: %s\n", pInfo->name,
>

I assume this caused a bug somehow? Please detail for the curious :).

Either way, the reasoning is sound.

Reviewed-by: Chase Douglas <chase.douglas at canonical.com>


More information about the xorg-devel mailing list