lkml.org 
[lkml]   [2004]   [Apr]   [9]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
DateFri, 9 Apr 2004 18:30:38 +0200 (CEST)
FromGrzegorz Kulewski <>
SubjectRe: 2.6.5: keyboard lockup on a Toshiba laptop
On Fri, 9 Apr 2004, R. J. Wysocki wrote:

> On Wednesday 07 of April 2004 13:31, Grzegorz Kulewski wrote:
> > Ok, that should be easy to debug... I hope :-)
> >
> > Try to apply this patch to check what kernel part call connect function
> > too many times. (Maybe it is some power management stuff?)
> 
> I've applied this and I've got something like this in the log after a (recent) 
> lockup:
> 
> Apr  9 10:47:03 albercik kernel: Uniform CD-ROM driver Revision: 3.20
> Apr  9 10:47:03 albercik kernel: inserting floppy driver for 2.6.5
> Apr  9 10:47:03 albercik kernel: Floppy drive(s): fd0 is 1.44M
> Apr  9 10:47:03 albercik kernel: FDC 0 is a post-1991 82077
> Apr  9 10:47:03 albercik kernel: SCSI subsystem initialized
> Apr  9 10:51:11 albercik kernel: spurious 8259A interrupt: IRQ7.
> Apr  9 15:00:24 albercik kernel: Call Trace:
> Apr  9 15:00:24 albercik kernel:  [<c0277b29>] atkbd_connect+0x19/0x420
> Apr  9 15:00:24 albercik kernel:  [<c027adca>] serio_find_dev+0x6a/0x70
> Apr  9 15:00:24 albercik kernel:  [<c027aee9>] serio_handle_events+0xc9/0x120
> Apr  9 15:00:24 albercik kernel:  [<c027af85>] serio_thread+0x45/0x140
> Apr  9 15:00:24 albercik kernel:  [<c0117a40>] default_wake_function+0x0/0x20
> Apr  9 15:00:24 albercik kernel:  [<c027af40>] serio_thread+0x0/0x140
> Apr  9 15:00:24 albercik kernel:  [<c0105285>] kernel_thread_helper+0x5/0x10
> Apr  9 15:00:24 albercik kernel: 
> Apr  9 15:00:24 albercik kernel: input: AT Translated Set 2 keyboard on 
> isa0060/serio0
> Apr  9 15:42:19 albercik kernel: Call Trace:
> Apr  9 15:42:19 albercik kernel:  [<c0277b29>] atkbd_connect+0x19/0x420
> Apr  9 15:42:19 albercik kernel:  [<c027adca>] serio_find_dev+0x6a/0x70
> Apr  9 15:42:19 albercik kernel:  [<c027aee9>] serio_handle_events+0xc9/0x120
> Apr  9 15:42:19 albercik kernel:  [<c027af85>] serio_thread+0x45/0x140
> Apr  9 15:42:19 albercik kernel:  [<c0117a40>] default_wake_function+0x0/0x20
> Apr  9 15:42:19 albercik kernel:  [<c027af40>] serio_thread+0x0/0x140
> Apr  9 15:42:19 albercik kernel:  [<c0105285>] kernel_thread_helper+0x5/0x10
> Apr  9 15:42:19 albercik kernel: 
> Apr  9 15:42:19 albercik kernel: input: AT Translated Set 2 keyboard on 
> isa0060/serio0
> Apr  9 15:58:36 albercik kernel: Call Trace:
> Apr  9 15:58:36 albercik kernel:  [<c0277b29>] atkbd_connect+0x19/0x420
> Apr  9 15:58:36 albercik kernel:  [<c027adca>] serio_find_dev+0x6a/0x70
> Apr  9 15:58:36 albercik kernel:  [<c027aee9>] serio_handle_events+0xc9/0x120
> Apr  9 15:58:36 albercik kernel:  [<c027af85>] serio_thread+0x45/0x140
> Apr  9 15:58:36 albercik kernel:  [<c0117a40>] default_wake_function+0x0/0x20
> Apr  9 15:58:36 albercik kernel:  [<c027af40>] serio_thread+0x0/0x140
> Apr  9 15:58:36 albercik kernel:  [<c0105285>] kernel_thread_helper+0x5/0x10
> Apr  9 15:58:36 albercik kernel: 
> 
> Here I had to reboot the machine.

So we can see that atkbd_connect is called several times (and it probably 
should not... - somebody correct me if I am wrong).

Apply attached patch to see what causes reconnection.

Grzegorz Kulewski
--- /usr/src/linux-2.6.5/drivers/input/serio/serio.c.orig	2004-04-04 05:36:15.000000000 +0200
+++ /usr/src/linux-2.6.5/drivers/input/serio/serio.c	2004-04-09 18:28:50.268521936 +0200
@@ -166,6 +166,11 @@ static int serio_thread(void *nothing)
 static void serio_queue_event(struct serio *serio, int event_type)
 {
 	struct serio_event *event;
+	
+	if (event_type == SERIO_RESCAN || event_type == SERIO_RECONNECT) {
+		printk(KERN_WARNING "serio: RESCAN || RECONNECT requested: %d!\n", event_type);
+		dump_stack();
+	}
 
 	if ((event = kmalloc(sizeof(struct serio_event), GFP_ATOMIC))) {
 		event->type = event_type;
\
 
 \ /
  Last update: 2005-03-22 13:02    [from the cache]
©2003-2008