Magnus.Vigerlof at home.se
Tue Mar 20 15:53:09 PDT 2007
On Tuesday 20 March 2007 07:31, Peter Hutterer wrote:
> 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.
Correct me if I'm wrong, but shouldn't the call to xf86DeleteInput be regarded
as a bug in the evdev-driver? As far as I can see, it's only evdev that makes
this call in the preInit-call. (Ok, calcomp does too, but it returns NULL in
It wouldn't solve your problem, but your server wouldn't crash at least..
> I'm not sure what exactly goes wrong. If the ioctl wouldn't fail, I
> suppose it should work. So why does it fail?
What I can see, there should be something written to the log-file which
includes the errno-string (X_INFO only, but maybe it got into the log) that
could give you a hint.
Btw, how many are actually working on input-related stuff at the moment?
I'm asking as I've been looking through the code for a few days to see what
changes are needed in the wacom-driver to make it hotpluggable. So far I've
seen memory-leaks, security holes, old limitations (and maybe some other,
smaller things) in the server code, but not very much activity on the list
addressing this. Maybe people are working, but I don't see it..
I'm interested in making hotplugging work. I'm most interested in the wacom
driver, but if getting that driver to work means I have to work on more
generic parts I won't shy away from it. My 'only' problem is that I've only
looked at the source for a limited time and haven't lurked here long enough
to have the big picture, so I'd appreciate a few pointers helping me
understand what should happend with this part in the long term.
More information about the xorg