mailinglists at who-t.net
Mon Mar 19 23:31:43 PDT 2007
I was having some troubles with evdev lately.
When I take a keyboard and plug it in, unplug it and plug it in
again, the server SIGABRTs. I can't seem to reliably reproduce it in
master, but it definitely happens on the mpx branch.
Reason for the SIGABRT is a double call to xfree.
In EvdevNew, the driver somehow fails to grab the device.
ioctl(pInfo->fd, EVIOCGRAB, (void*)1)) in evdev.c:304
As a result, xf86DeleteInput() is called because the XI86_CONFIGURED
flag is not set (evdev.c:331). However, evdevCorePreInit will still
return a non-NULL value. The XI86_CONFIGURED flag is still not set,
and xf86DeleteInput is called again, causing a SIGABRT.
I'm not sure what exactly goes wrong. If the ioctl wouldn't fail, I
suppose it should work. So why does it fail?
Multi-Pointer X Server
More information about the xorg