xserver/hw/xfree86/common
Tomáš Trnka a3dfc9c913 Fix drain_console unregistration
Bug introduced by 9dca441670
xfree86: add a hook to replace the new console handler.

console_handler was not being set, making the server eat up CPU spinning
in WaitForSomething selecting consoleFd over and over again, every time
trying to unregister drain_console without success due to
console_handler being NULL.

Let's just fix the unregistration in xf86SetConsoleHandler() and use that.

But wait, there could be a catch: If some driver replaced the handler using
xf86SetConsoleHandler(), the unregistration in xf86CloseConsole will unregister
that one. I don't understand Xorg well enough to know whether this poses a
problem (could mess up driver deinit somehow or something like that). As it is,
xf86SetConsoleHandler() doesn't offer any way to prevent this (i.e. check which
handler is currently registered).

I had been using it for two days on my machine that previously hit 100% CPU
several times a day. That has now gone away without any new problems appearing.

Signed-off-by: Tomas Trnka <tomastrnka@gmx.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Signed-off-by: Peter Hutterer <peter.hutterer@who-t.net>
(cherry picked from commit 323869f329)
(cherry picked from commit 82445286d5)
2011-10-26 00:49:13 -07:00
..
.gitignore .gitignore: use common defaults with custom section #24239 2009-11-11 21:40:20 -08:00
compiler.h Remove SCO support 2010-12-20 12:11:11 -05:00
extramodes Remove some default modes that really shouldn't be in the default set. 2008-06-24 10:40:36 -04:00
fourcc.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00
Makefile.am Remove SCO support 2010-12-20 12:11:11 -05:00
modeline2c.awk Remove some OS/2 leftovers. 2009-04-06 10:58:47 -04:00
vesamodes Fix standard VESA modes. 2006-11-03 14:06:32 -08:00
vidmodeproc.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
xf86.h xfree86: Remove xf86EnterServerState 2010-12-20 12:14:32 -05:00
xf86AutoConfig.c config: warning fixes 2010-12-31 12:36:44 +00:00
xf86Build.h.in Print the build time as well as the date if we can. 2007-06-04 02:03:44 -04:00
xf86Bus.c xfree86: Remove xf86EnterServerState 2010-12-20 12:14:32 -05:00
xf86Bus.h xfree86: bus: remove useless field from EntityRec 2010-05-24 19:17:04 +03:00
xf86cmap.c Unwrap/rewrap EnterVT/LeaveVT completely, Fixes 28998 2010-07-13 09:58:04 -07:00
xf86cmap.h Change the devPrivates API to require dixRegisterPrivateKey 2010-06-05 19:23:03 -07:00
xf86Config.c Initialize the fd to -1 for xorg.conf input devices. 2011-07-28 09:45:18 +10:00
xf86Config.h xfree86: "Staticize" functions in xf86AutoConfig.c 2009-07-24 13:25:42 +03:00
xf86Configure.c Remove SCO support 2010-12-20 12:11:11 -05:00
xf86Cursor.c xfree86: Remove xf86EnterServerState 2010-12-20 12:14:32 -05:00
xf86DGA.c xfree86/dga: Remove DGAIsDgaEvent() 2011-01-27 14:22:03 +10:00
xf86DPMS.c Change the devPrivates API to require dixRegisterPrivateKey 2010-06-05 19:23:03 -07:00
xf86Events.c Fix drain_console unregistration 2011-10-26 00:49:13 -07:00
xf86fbBus.c xserver: remove RAC/resource handling code. 2009-07-28 15:14:28 +10:00
xf86fbman.c Change the devPrivates API to require dixRegisterPrivateKey 2010-06-05 19:23:03 -07:00
xf86fbman.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
xf86Globals.c xfree86: Remove unused xf86inSuspend 2010-12-20 12:09:16 -05:00
xf86Helper.c xfree86: fix memory leak in xf86ConfigFbEntity 2011-04-04 17:27:12 +03:00
xf86Init.c xfree86: duplicate xorg.conf device information before xf86NewInputDevice 2011-07-28 09:45:13 +10:00
xf86InPriv.h xfree86: make xf86ActivateDevice static. 2010-09-01 15:26:47 +10:00
xf86Mode.c xf86ValidateModes: xnfalloc(strlen) + strcpy => xnfstrdup 2010-11-30 16:25:10 -08:00
xf86Module.h xfree86: Bump video ABI to 10.0 2011-02-24 19:42:02 -08:00
xf86noBus.c xserver: remove RAC/resource handling code. 2009-07-28 15:14:28 +10:00
xf86Opt.h xfree86: add xf86OptionListDuplicate() 2010-09-18 13:55:37 +02:00
xf86Option.c xfree86: NULL option values are technically valid, don't strdup them 2011-07-28 09:45:16 +10:00
xf86pciBus.c Convert alloc+sprintf pairs into asprintf() & XNFasprintf() calls 2010-12-07 11:10:35 -08:00
xf86pciBus.h xfree86: configure: move buses references to their own location 2010-09-14 18:51:59 +03:00
xf86PciInfo.h No more "-scanpci" given that we already have it in libpciaccess. 2008-02-25 17:08:07 -03:00
xf86PM.c xfree86: Remove xf86EnterServerState 2010-12-20 12:14:32 -05:00
xf86Priv.h xfree86: Remove xf86EnterServerState 2010-12-20 12:14:32 -05:00
xf86Privstr.h xfree86: rename allowEmptyInput to forceInputDevices. 2010-11-12 11:49:48 +10:00
xf86RandR.c Change the devPrivates API to require dixRegisterPrivateKey 2010-06-05 19:23:03 -07:00
xf86sbusBus.c xfree86: Fix undefined reference to `XNFsprintf' on sparc. 2011-02-23 14:44:23 +01:00
xf86sbusBus.h xfree86: configure: move buses references to their own location 2010-09-14 18:51:59 +03:00
xf86ShowOpts.c Replace alloc+strcpy+strcat with asprintf() & XNFasprintf() calls 2010-12-07 11:10:35 -08:00
xf86str.h xfree86: Remove xf86EnterServerState 2010-12-20 12:14:32 -05:00
xf86VGAarbiter.c Add subWindowMode parameter to SourceValidate 2011-01-05 11:56:28 -08:00
xf86VGAarbiter.h xfree86: vgaarb: fix device decoding interface to send resources type properly 2010-08-26 18:17:12 +03:00
xf86VGAarbiterPriv.h Add subWindowMode parameter to SourceValidate 2011-01-05 11:56:28 -08:00
xf86VidMode.c xf86vidmode: warning fix 2011-02-08 12:40:14 -05:00
xf86Xinput.c xfree86: Remove devices that failed to enable on startup 2011-07-28 09:45:10 +10:00
xf86Xinput.h xfree86: use xf86AllocateInput() for xorg.conf devices too. 2010-12-07 11:37:31 +10:00
xf86xv.c xf86/xv: Only register PostValidateTree hook when there is work to do 2011-02-03 14:38:42 +02:00
xf86xv.h xf86/xv: Fill color key on expose 2011-02-03 14:38:10 +02:00
xf86xvmc.c Change the devPrivates API to require dixRegisterPrivateKey 2010-06-05 19:23:03 -07:00
xf86xvmc.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
xf86xvpriv.h xf86/xv: Use PostValidateTree to do reput 2011-02-03 14:38:36 +02:00
xisb.c Remove unnecessary parentheses around return values in functions 2010-06-10 06:42:42 -07:00
xisb.h Rework symbol visibility for easier maintenance 2008-12-03 05:43:34 -02:00
xorgHelper.c xfree86: ANSI cleanups 2009-01-11 08:54:11 +01:00
xorgVersion.h Remove RCS tags. Fix Xprint makefile braindamage. 2006-07-21 17:56:00 -04:00