[PATCH] Update synaptics to XInput 7 ABI

Ben Gamari bgamari.foss at gmail.com
Sun Jun 21 22:56:07 PDT 2009


On Fri, Jun 19, 2009 at 04:34:33PM +1000, Peter Hutterer wrote:
> On Fri, Jun 19, 2009 at 02:01:30AM -0400, Ben Gamari wrote:
> > > How about this one (obviously on top of fd939)?
> > 
> > Looks good (once someone figures out the button label situation).
> 
> So getting the labels right is mostly candy now anyway, and getting them
> for the ones after 7 is something we can worry about in the future, but
> don't have to worry about right now.
> 

Oops, it seems I messed up. When I tested your patches it turned out
that I wasn't actually testing your patches. It seems that providing a
label of 0 causes gnome-settings-daemon to crash with the following
backtrace,


Gdk-ERROR **: The program 'gnome-settings-daemon' received an X Window
System error.
This probably reflects a bug in the program.
The error was 'BadValue (integer parameter out of range for operation)'.
  (Details: serial 3736 error_code 2 request_code 116 minor_code 0)
  (Note to programmers: normally, X errors are reported asynchronously;
   that is, you will receive the error a while after causing it.
   To debug your program, run it with the --sync command line
   option to change this behavior. You can then get a meaningful
   backtrace from your debugger if you break on the gdk_x_error()
function.)
aborting...

Program received signal SIGTRAP, Trace/breakpoint trap.
[Switching to Thread 0x7f38bbe86780 (LWP 22490)]
0x00007f38b8cf93f0 in g_logv () from /usr/lib/libglib-2.0.so.0
(gdb) bt
#0  0x00007f38b8cf93f0 in g_logv () from /usr/lib/libglib-2.0.so.0
#1  0x00007f38b8cf97b3 in g_log () from /usr/lib/libglib-2.0.so.0
#2  0x00007f38bb403406 in gdk_x_error (display=<value optimized out>, 
    error=<value optimized out>)
    at /build/buildd/gtk+2.0-2.17.2/gdk/x11/gdkmain-x11.c:641
#3  0x00007f38b018ca39 in xkl_process_error () from
/usr/lib/libxklavier.so.12
#4  0x00007f38b75b8d78 in _XError (dpy=0x78aeb0, rep=0x9cff30)
    at XlibInt.c:2924
#5  0x00007f38b75c152a in _XReply (dpy=0x78aeb0, rep=0x7fff8e9217c0,
extra=0, 
    discard=0) at xcb_io.c:506
#6  0x00007f38b75b03da in XSetPointerMapping (dpy=0x78aeb0, 
    map=0x9cf810 "\001\002\003\004\005\006\a", nmaps=8) at
SetPntMap.c:51
#7  0x00007f38afb4d3ee in set_left_handed (manager=<value optimized
out>, 
    left_handed=0) at gsd-mouse-manager.c:396
#8  0x00007f38afb4dd0c in set_mouse_settings (manager=0x7ead90)
    at gsd-mouse-manager.c:793
#9  0x00007f38afb4e16b in gsd_mouse_manager_idle_cb (manager=0x7ead90)
    at gsd-mouse-manager.c:893
#10 0x00007f38b8cef8fe in g_main_context_dispatch ()
   from /usr/lib/libglib-2.0.so.0
#11 0x00007f38b8cf2fd8 in ?? () from /usr/lib/libglib-2.0.so.0
#12 0x00007f38b8cf3435 in g_main_loop_run () from
/usr/lib/libglib-2.0.so.0
#13 0x00007f38bb7a4027 in IA__gtk_main ()
    at /build/buildd/gtk+2.0-2.17.2/gtk/gtkmain.c:1205
#14 0x0000000000404675 in main ()

Changing the third argument of the InitPointerDeviceStruct() call in
synaptics' DeviceInit() from SYN_MAX_BUTTONS to 7 avoids the crash.
Changing it then to 8 (as was done in the case of the above backtrace)
triggers the crash. Not really sure what to make of this. Let me know
what you think. Thanks,

- Ben



More information about the xorg mailing list