From: Pavel Machek <pavel@suse.cz>

Alt-arrow console switch is routinely dropped under high load.  This patch
fixes it: alt-arrow has to start from console _we want to switch to_, if
switch is already pending.



 drivers/char/keyboard.c |    6 +++++-
 1 files changed, 5 insertions(+), 1 deletion(-)

diff -puN drivers/char/keyboard.c~alt-arrow-console-switch-fix drivers/char/keyboard.c
--- 25/drivers/char/keyboard.c~alt-arrow-console-switch-fix	2004-01-03 11:42:05.000000000 -0800
+++ 25-akpm/drivers/char/keyboard.c	2004-01-03 11:42:05.000000000 -0800
@@ -507,8 +507,12 @@ static void fn_dec_console(struct vc_dat
 static void fn_inc_console(struct vc_data *vc, struct pt_regs *regs)
 {
 	int i;
+	int cur = fg_console;
 
-	for (i = fg_console+1; i != fg_console; i++) {
+	if (want_console != -1)
+		cur = want_console;
+
+	for (i = cur+1; i != cur; i++) {
 		if (i == MAX_NR_CONSOLES)
 			i = 0;
 		if (vc_cons_allocated(i))

_