If a segfault or other error occurs, the previous code would call
CloseDownDevices(). That started the normal device removal process which
includes cleaning up a fair bit and also sending events. None of that is
appropriate from the signal handler, especially if we're about to die
anyway.

Shortcut the whole process, simply calling into the driver's DeviceProc with
a new DEVICE_ABORT mode to tell the driver to clean up. This is only needed
by devices that are directly handled by the driver.

This avoids relatively common double-crashes: something triggers a segfault,
and then in the cleanup the input code triggers another one which is then
filed as bug.

Cheers, 
  Peter

_______________________________________________
[email protected]: X.Org development
Archives: http://lists.x.org/archives/xorg-devel
Info: http://lists.x.org/mailman/listinfo/xorg-devel

Reply via email to