| From Grazvydas Ignotas |
| |
| At least xserver 1.7.4 crashes on XGetPointerControl request because of xf86-input-tslib: |
| |
| Program received signal SIGSEGV, Segmentation fault. |
| #0 0x000355e0 in ProcGetPointerControl (client=0x4a2e58) at devices.c:2122 |
| #1 0x00062fa8 in Dispatch () at dispatch.c:439 |
| #2 0x00022444 in main (argc=4, argv=0xbeebedc4, envp=0xbeebedd8) at main.c:285 |
| |
| This happens because ptrfeed field is not set in device structure from tslib. |
| To fix this, call InitPtrFeedbackClassDeviceStruct() during DEVICE_INIT to get necessary setup done (as done in other input drivers). |
| |
| --- |
| diff -ur xf86-input-tslib-0.0.6/src/tslib.c xf86-input-tslib-0.0.6_/src/tslib.c |
| --- xf86-input-tslib-0.0.6/src/tslib.c 2010-02-09 12:23:22.000000000 +0200 |
| +++ xf86-input-tslib-0.0.6_/src/tslib.c 2010-02-09 12:37:33.000000000 +0200 |
| @@ -103,8 +103,6 @@ |
| static void |
| PointerControlProc(DeviceIntPtr dev, PtrCtrl * ctrl) |
| { |
| - ErrorF("%s\n", __FUNCTION__); |
| - return; |
| } |
| |
| static Bool |
| @@ -406,6 +404,8 @@ |
| xf86MotionHistoryAllocate(pInfo); |
| #endif |
| |
| + if (!InitPtrFeedbackClassDeviceStruct(device, PointerControlProc)) |
| + return !Success; |
| break; |
| |
| case DEVICE_ON: |