2016-02-11 19:35 GMT-02:00 Peter Hutterer <peter.hutte...@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
_______________________________________________ xorg-devel@lists.x.org: X.Org development Archives: http://lists.x.org/archives/xorg-devel Info: https://lists.x.org/mailman/listinfo/xorg-devel