[PATCH:xf86-input-keyboard] Close device fd when called with DEVICE_CLOSE
Alan Coopersmith
alan.coopersmith at oracle.com
Thu Aug 12 20:24:12 PDT 2010
Peter Hutterer wrote:
> 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.
On Solaris at least, the intent is to only close it on DEVICE_CLOSE, and just
disable it on DEVICE_OFF, as that's the way our kernel VT interfaces expect us
to handle it. If that's not what other OS'es expect, then I can move this into
sun_kbd.c instead.
--
-Alan Coopersmith- alan.coopersmith at oracle.com
Oracle Solaris Platform Engineering: X Window System
More information about the xorg-devel
mailing list