debian/changelog | 4 ++- debian/patches/08_xkb_infinite_loop.diff | 34 +++++++++++++++++++++++++++++++ debian/patches/series | 1 3 files changed, 38 insertions(+), 1 deletion(-)
New commits: commit e8e1a1e781d52ca3bbe804b0cb0c9b5d6d42b421 Author: Julien Cristau <[EMAIL PROTECTED]> Date: Fri Dec 7 21:12:40 2007 +0100 Add patch 08_xkb_infinite_loop.diff from upstream bug#13511 Papers over an infinite loop in event processing (closes: #451989). diff --git a/debian/changelog b/debian/changelog index cb16609..251daca 100644 --- a/debian/changelog +++ b/debian/changelog @@ -6,8 +6,10 @@ xorg-server (2:1.4.1~git20071119-2) UNRELEASED; urgency=low * Cherry-pick commit f30abe30 from master: edid quirk for MAX 0x77e monitor. * Add patch 44_preferredmode_infinite_loop.diff from upstream git: fixes an infinite loop when PreferredMode is used in xorg.conf. + * Add patch 08_xkb_infinite_loop.diff from upstream bug#13511: papers over + an infinite loop in event processing (closes: #451989). - -- Julien Cristau <[EMAIL PROTECTED]> Sun, 02 Dec 2007 00:56:53 +0100 + -- Julien Cristau <[EMAIL PROTECTED]> Fri, 07 Dec 2007 21:09:24 +0100 xorg-server (2:1.4.1~git20071119-1) unstable; urgency=low diff --git a/debian/patches/08_xkb_infinite_loop.diff b/debian/patches/08_xkb_infinite_loop.diff new file mode 100644 index 0000000..efe3f28 --- /dev/null +++ b/debian/patches/08_xkb_infinite_loop.diff @@ -0,0 +1,34 @@ +http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=451989 +https://bugs.freedesktop.org/show_bug.cgi?id=13511 +------ Comment #1 From Peter Hutterer 2007-12-04 22:45:39 PST [reply] ------- + +(In reply to comment #0) +> When some window is opened by some grabbed key, grabbing all keys and they +> destroyed (like the window ratpoison opened uppon C-t :, or the window icewm +> shows when doing Alt-Tab), the xserver is caught in an endless loop within +> PlayReleasedEvents in dix/events.c. + +interesting bug... tricky to track down. + +The bug only occurs if Xkb triggers an autorepeat. In this case, +XkbHandleActions overwrites dev->public.realInputProc with EnqueueEvent. When +the device is unfrozen, the realInputProc is written back to the +processInputProc and the whole thing craps out. + +Here's a preliminary hack to fix it. It stops the loop occuring (tested with +ratpoison) but I'm not sure what other implications it has. It most probably is +not the correct solution. + +diff --git a/include/xkbsrv.h b/include/xkbsrv.h +index 167dbec..9f7f0d6 100644 +--- a/include/xkbsrv.h ++++ b/include/xkbsrv.h +@@ -258,7 +258,8 @@ typedef struct + device->public.processInputProc = proc; \ + oldprocs->processInputProc = \ + oldprocs->realInputProc = device->public.realInputProc; \ +- device->public.realInputProc = proc; \ ++ if (proc != device->public.enqueueInputProc) \ ++ device->public.realInputProc = proc; \ + oldprocs->unwrapProc = device->unwrapProc; \ + device->unwrapProc = unwrapproc; diff --git a/debian/patches/series b/debian/patches/series index 08a6b93..1e668fd 100644 --- a/debian/patches/series +++ b/debian/patches/series @@ -5,6 +5,7 @@ 05_kill_type1.diff 06_use_proc_instead_of_sysfs_for_pci_domains.diff 07_autoconfig_screen_with_device_section.diff +08_xkb_infinite_loop.diff 10_dont_look_in_home_for_config.diff -p0 12_bgPixel_fix_64bit_issue.diff 13_debian_add_xkbpath_env_variable.diff -- To UNSUBSCRIBE, email to [EMAIL PROTECTED] with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]