[PATCH:xf86-input-keyboard] Close device fd when called with DEVICE_CLOSE

Peter Hutterer peter.hutterer at who-t.net
Thu Aug 12 18:28:10 PDT 2010


On Wed, Aug 11, 2010 at 07:54:59PM -0700, Alan Coopersmith wrote:
> From: Aaron Zang <aaron.zang at sun.com>
> 
> Fixes Solaris bug 6886424:
>  VT - keyboard and mouse do not work when switching to vt7
>  http://bugs.opensolaris.org/bugdatabase/view_bug.do?bug_id=6886424
> 
> Signed-off-by: Alan Coopersmith <alan.coopersmith at oracle.com>
> ---
>  src/kbd.c |    8 ++++++++
>  1 files changed, 8 insertions(+), 0 deletions(-)
> 
> diff --git a/src/kbd.c b/src/kbd.c
> index 96409cf..991fe01 100644
> --- a/src/kbd.c
> +++ b/src/kbd.c
> @@ -464,6 +464,14 @@ KbdProc(DeviceIntPtr device, int what)
>        RemoveEnabledDevice(pInfo->fd);
>      pKbd->KbdOff(pInfo, what);
>      device->public.on = FALSE;
> +
> +    if (what == DEVICE_CLOSE) {
> +	xf86Msg(X_INFO, "%s: Close\n", pInfo->name);
> +	if (pInfo->fd != -1) {
> +	    close(pInfo->fd);
> +	    pInfo->fd = -1;
> +	}
> +    }
>      break;
>    }
>    return (Success);
> -- 
> 1.5.6.5

shouldn't this be DEVICE_OFF instead? DEVICE_CLOSE is called when the device
is removed, DEVICE_OFF when it is disabled (e.g. on VT switch).
Also, it looks like you could simply merge this into the DEVICE_OFF branch
and make DEVICE_CLOSE a noop.


Cheers,
  Peter


More information about the xorg-devel mailing list