Bug 12254

Summary: oops in alps_process_byte/psmouse_interrupt with AlpsPS/2 after station undock/redock
Product: Drivers Reporter: Cyril Brulebois (kibi)
Component: Input DevicesAssignee: drivers_input-devices
Status: CLOSED UNREPRODUCIBLE    
Severity: normal CC: alan, chris, dmitry.torokhov, georgmueller, mail
Priority: P1    
Hardware: All   
OS: Linux   
Kernel Version: 2.6.31 Subsystem:
Regression: No Bisected commit-id:
Attachments: 2 full traces
Kernel config
Debug info
2 * Debug info

Description Cyril Brulebois 2008-12-19 12:32:05 UTC
Latest working kernel version: (unknown, always crashed this way after installation)
Earliest failing kernel version: 2.6.26 at least (as shipped by Debian)
Distribution: Debian
Hardware Environment: Dell Latitude D430
Software Environment: Debian unstable
Problem Description: Kernel oops when using the touchpad after having undocked/redocked the laptop on Dell's D-Port dock.

Trace (reproduced several times):
[  175.364324] Oops: 0000 [#1] SMP 
[  175.364336] last sysfs file: /sys/devices/platform/dcdbas/smi_data_buf_phys_addr
[  175.364344] CPU 0 
[  175.364352] Modules linked in: i915 drm ipv6 fuse loop joydev snd_hda_intel snd_pcm snd_seq snd_timer snd_seq_device snd serio_raw soundcore psmouse video output snd_page_alloc rng_core parport_pc parport intel_agp wmi button battery ac dcdbas evdev ext3 jbd mbcache sha256_generic aes_x86_64 aes_generic cbc dm_crypt dm_mirror dm_region_hash dm_log dm_snapshot dm_mod usbhid hid sd_mod piix ide_pci_generic ide_core ata_piix ohci1394 ieee1394 ata_generic libata scsi_mod ehci_hcd uhci_hcd thermal processor fan thermal_sys
[  175.364589] Pid: 0, comm: swapper Not tainted 2.6.28-rc9-kibi #7
[  175.364597] RIP: 0010:[<ffffffffa022a88e>]  [<ffffffffa022a88e>] alps_process_byte+0x26/0x68 [psmouse]
[  175.364622] RSP: 0018:ffffffff80641e88  EFLAGS: 00010093
[  175.364630] RAX: 0000000000000000 RBX: ffff88007e8f9400 RCX: ffff88007d8d6c80
[  175.364638] RDX: 0000000000000000 RSI: 0000000000000000 RDI: ffff88007e8f9400
[  175.364646] RBP: 0000000000000000 R08: 00000028d485c627 R09: ffffffff80278050
[  175.364656] R10: 0000000000000000 R11: ffffffff8021d4a4 R12: ffff88007d252000
[  175.364663] R13: ffff88007d252050 R14: 0000000000000202 R15: 0000000000000000
[  175.364673] FS:  0000000000000000(0000) GS:ffffffff805c6580(0000) knlGS:0000000000000000
[  175.364681] CS:  0010 DS: 0018 ES: 0018 CR0: 000000008005003b
[  175.364690] CR2: 0000000000000004 CR3: 0000000000201000 CR4: 00000000000006e0
[  175.364698] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000
[  175.364705] DR3: 0000000000000000 DR6: 00000000ffff0ff0 DR7: 0000000000000400
[  175.364714] Process swapper (pid: 0, threadinfo ffffffff805cc000, task ffffffff8053d340)
[  175.364723] Stack:
[  175.364728]  0000000000000008 ffffffffa0227e72 ffff88007e8f9400 ffffffffa0228d1d
[  175.364747]  ffff88007d252000 0000000000000000 0000000000000000 ffffffff803c8d75
[  175.364771]  0000000000000000 0000000000000001 0000000000000000 0000000000000035
[  175.364798] Call Trace:
[  175.364803]  <IRQ> <0> [<ffffffffa0227e72>] psmouse_handle_byte+0xa/0xfb [psmouse]
[  175.364838]  [<ffffffffa0228d1d>] psmouse_interrupt+0x25a/0x265 [psmouse]
[  175.364858]  [<ffffffff803c8d75>] serio_interrupt+0x37/0x6f
[  175.364874]  [<ffffffff803c9d1b>] i8042_interrupt+0x1eb/0x1ff
[  175.364887]  [<ffffffff80250387>] ktime_get_ts+0x21/0x4a
[  175.364901]  [<ffffffff802758b7>] handle_IRQ_event+0x2c/0x61
[  175.364916]  [<ffffffff80276bb5>] handle_edge_irq+0xd9/0x120
[  175.364929]  [<ffffffff8020efd9>] do_IRQ+0x75/0xe4
[  175.364945]  [<ffffffff8020c5a3>] ret_from_intr+0x0/0x29
[  175.364958]  <EOI> <0> [<ffffffffa00124ac>] acpi_idle_enter_bm+0x331/0x3bb [processor]
[  175.364988]  [<ffffffffa00124a4>] acpi_idle_enter_bm+0x329/0x3bb [processor]
[  175.365009]  [<ffffffff803d27c8>] cpuidle_idle_call+0x8b/0xc7
[  175.365024]  [<ffffffff8020b160>] cpu_idle+0x51/0x92
[  175.365037] Code: e9 a0 22 1a e0 48 83 ec 08 8a 97 d8 00 00 00 48 8b 0f 89 d0 25 c8 00 00 00 83 f8 08 75 09 80 bf e1 00 00 00 03 eb 2d 48 8b 41 28 <22> 50 04 3a 50 03 75 36 8a 97 e1 00 00 00 8d 42 fe 3c 04 77 11 
[  175.365249] RIP  [<ffffffffa022a88e>] alps_process_byte+0x26/0x68 [psmouse]
[  175.365268]  RSP <ffffffff80641e88>
[  175.365278] CR2: 0000000000000004
[  175.365286] Kernel panic - not syncing: Fatal exception in interrupt


One can note some attempts to (re)sync the driver:

0
[  174.220417] usb 2-8.2: Product: Dell Premium USB Optical Mouse
[  174.373214] psmouse.c: GlidePoint at isa0060/serio1/input0 lost sync at byte 1
[  174.374290] psmouse.c: GlidePoint at isa0060/serio1/input0 lost sync at byte 1
[  174.375375] psmouse.c: GlidePoint at isa0060/serio1/input0 lost sync at byte 1
[  174.487282] psmouse.c: GlidePoint at isa0060/serio1/input0 lost sync at byte 1
[  174.488284] psmouse.c: GlidePoint at isa0060/serio1/input0 lost sync at byte 1
[  174.488301] psmouse.c: issuing reconnect request


or even:

[ 3303.824153] psmouse.c: GlidePoint at isa0060/serio1/input0 lost sync at byte 1
[ 3303.825247] psmouse.c: GlidePoint at isa0060/serio1/input0 lost sync at byte 1
[ 3303.826337] psmouse.c: GlidePoint at isa0060/serio1/input0 lost sync at byte 1
[ 3303.924211] psmouse.c: GlidePoint at isa0060/serio1/input0 - driver resynched.
[ 3304.019555] psmouse.c: GlidePoint at isa0060/serio1/input0 lost sync at byte 1
[ 3304.020655] psmouse.c: GlidePoint at isa0060/serio1/input0 lost sync at byte 1
[ 3304.021737] psmouse.c: GlidePoint at isa0060/serio1/input0 lost sync at byte 1
[ 3304.118979] psmouse.c: GlidePoint at isa0060/serio1/input0 - driver resynched.

I'll be attaching a file containing two full (since boot) traces, the 2nd with such resync attempts.


Steps to reproduce:
 - Start with the laptop docked.
 - Undock.
 - Redock.
 - Play with the touchpad.

It looks like the oops is triggered more easily if one quickly attempts to use the touchpad, rather than waiting some seconds. That was observed because of having to unplug/replug the Ethernet cable to monitor the oops using netconsole (needed since the oops wasn't logged everytime on the local filesystem). The bug then became harder to reproduce. After having chosen to leave the cable plugged to the dock, the bug was reproducible at will (presumably because there was only a very short delay between docking back and playing with the touchpad).

I also have a (generic) USB mouse connected to the dock, but it didn't seem to interact when I first encountered this bug, that is with 2.6.26 shipped by Debian.
Comment 1 Cyril Brulebois 2008-12-19 12:33:58 UTC
Created attachment 19381 [details]
2 full traces
Comment 2 Cyril Brulebois 2008-12-19 12:35:54 UTC
Created attachment 19382 [details]
Kernel config

Some bits about the system:
2 * Intel(R) Core(TM)2 Duo CPU     U7700  @ 1.33GHz
with an x86_64 userland.
Comment 3 Dmitry Torokhov 2008-12-20 12:31:41 UTC
Cyril,

Any chance you could enable debug (echo 1 > /sys/module/i8042/parameters/debug) before triggering the oops so I could see the data stream leading to it. Dont type any passwords after you enabled debug though.

Thanks.
Comment 4 Cyril Brulebois 2008-12-22 02:51:02 UTC
Created attachment 19427 [details]
Debug info
Comment 5 Cyril Brulebois 2008-12-22 02:51:43 UTC
Unfortunately, I can't affirm it's the very same oops since I got nothing logged through netconsole, or on the local FS. I'll try and get another trace later today.
Comment 6 Cyril Brulebois 2008-12-22 06:02:59 UTC
Created attachment 19431 [details]
2 * Debug info

As you can see here, I'd been using the machine for some hours, turned on debug info, and tried to dedock. From that point, I couldn't interact with the box anymore, either with the mouse or with the keyboard, and I don't think it OOPS'd (the capslock, numlock, etc. leds didn't go blinking), and I didn't get anything through netconsole.

Then, I rebooted and tried again. This time, leds went blinking, but I still haven't any trace of OOPS in my log, I can only see the last module that got loaded there (drm initialized upon X startup).

Not sure whether enabling debug info is sufficient to “hide”/suppress the oops trace…
Comment 7 Georg Müller 2009-01-22 02:49:52 UTC
I have the same issue with 2.6.27.7 (opensuse kernel, diff of alps.c is the same, so I hope this is not an issue) on a Dell Latitude D820, easily reproducible. I do not have to redock, just undock and use the touchpad.
My OOPS/panic can be found at https://bugzilla.novell.com/attachment.cgi?id=254581 

I will try to enable debug and do the dump as described in comment #3
Comment 8 Georg Müller 2009-01-28 03:13:03 UTC
I have enabled debug (echo 1 > /sys/module/i8042/parameters/debug), but the only output generated by this module is the panic blink right after the panic (about 15 seconds after I enabled debug, I used the touchpad during the whole time):

drivers/input/serio/i8042.c: ed -> i8042 (panic blink) [34802]
drivers/input/serio/i8042.c: 05 -> i8042 (panic blink) [34802]
drivers/input/serio/i8042.c: ed -> i8042 (panic blink) [34802]
drivers/input/serio/i8042.c: 00 -> i8042 (panic blink) [34802]
...

I don't see any input from the touchpad.

As mentioned in my bug report @Novell (https://bugzilla.novell.com/show_bug.cgi?id=445840), then under X11, the touchpad loses it's special functions like tapping, scrolling right after the undock. After some 'moves' the panic occurs.
Comment 9 Georg Müller 2009-09-18 09:57:52 UTC
I tried 2.6.31 and the system still panics.

Does any one have further suggestions how to debug this problem?
Comment 10 Dmitry Torokhov 2009-09-18 16:56:10 UTC
Hmm, it seems to work here on D630. Could you please enable debug but also disable panic blinking (echo 0 > /sys/module/i8042/parameters/panicblink) and make it oops again? Thanks.
Comment 11 Cyril Brulebois 2011-07-11 19:12:13 UTC
JFTR, I no longer have access to this hardware, sorry.