[PATCH kdrive/ephyr v7 3/9] kdrive: introduce input hot-plugging support for udev and hal backends (#33140)

Laércio de Sousa laerciosousa at sme-mogidascruzes.sp.gov.br
Fri Feb 12 13:04:42 UTC 2016


I've just confirmed: my openSUSE box is *not* affected by fd unregistering
issue. So I won't treat it as an upstream bug anymore, and I'll drop all
additional verifications from this patch.

2016-02-12 10:13 GMT-02:00 Laércio de Sousa <
laerciosousa at sme-mogidascruzes.sp.gov.br>:

>
> 2016-02-11 19:35 GMT-02:00 Peter Hutterer <peter.hutterer at who-t.net>:
>>
>> I just checked the kernel sources and there is no specific error case that
>> this code can trigger, it's something to do with the fd itself (EBADF,
>> EPERM, etc.). I guess fd is already closed/reset by the time you get here.
>> What errno do you get?
>
> I've got EBADF (Bad File Descriptor). Anyway, I realized that this error
> message when trying to ungrab devices are unrelated to fd unregistering.
>
> I've modified EvdevPtrDisable/EvdevKbdDisable functions, making them call
> KdUnregisterFd *twice*. I don't know why, but it seems to solve my problem
> (my "garbage collector" no longer detect orphan fds left behind and my
> Xephyr no longer segfaults when I unplug/replug them).
>
> Some more details about my issues:
>
> 1. This problem with incomplete fd unregistering only affects the device
> with the *lowest* fd number (I've found it by swapping the keyboard and
> mouse connections in my USB hub).
>
> 2. When I unplug the device with the lowest fd number (e.g. mouse), the
> one with the highest fd number (e.g. keyboard) stops working. If I then
> unplug this highest fd device, it does *not* disappear from "xinput list".
> When I finally replug this device, it works again, but it appears
> "duplicated" in "xinput list", with another fd number. Example:
>
> ⎡ Virtual core pointer                     id=2 [master pointer  (3)]
> ⎜   ↳ Virtual core XTEST pointer               id=4 [slave  pointer  (2)]
> ⎜   ↳ SIGMACHIP Usb Mouse                      id=6 [slave  pointer  (2)]
> ⎣ Virtual core keyboard                    id=3 [master keyboard (2)]
>     ↳ Virtual core XTEST keyboard              id=5 [slave  keyboard (3)]
>     ↳ HID 04f3:0103                            id=7 [slave  keyboard (3)]
>     ↳ HID 04f3:0103                            id=8 [slave  keyboard (3)]
>
> Crazily, issue 2 above only seems to affect Debian/Ubuntu systems. I have
> another openSUSE box with Xephyr-based multi-seat configured, and it's not
> affected by issue 2. I'll do more tests with this openSUSE box to see if
> it's affected by issue 1.
> --
> *Laércio de Sousa*
> *Orientador de Informática*
> *Escola Municipal "Professor Eulálio Gruppi"*
> *Rua Ismael da Silva Mello, 559, Mogi Moderno*
> *Mogi das Cruzes - SPCEP 08717-390*
> Telefone: (11) 4726-8313
>



-- 
*Laércio de Sousa*
*Orientador de Informática*
*Escola Municipal "Professor Eulálio Gruppi"*
*Rua Ismael da Silva Mello, 559, Mogi Moderno*
*Mogi das Cruzes - SPCEP 08717-390*
Telefone: (11) 4726-8313
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://lists.x.org/archives/xorg-devel/attachments/20160212/9ea9038a/attachment.html>


More information about the xorg-devel mailing list