evdev problems

Peter Hutterer 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?

Cheers,
   Peter

--
Multi-Pointer X Server
http://wearables.unisa.edu.au/mpx





More information about the xorg mailing list