Subject: kern/33689: Interrupt handler of uhci(4) driver caused kernel panic
To: None <kern-bug-people@netbsd.org, gnats-admin@netbsd.org,>
From: None <tron@colwyn.zhadum.org.uk>
List: netbsd-bugs
Date: 06/10/2006 15:30:00
>Number:         33689
>Category:       kern
>Synopsis:       Interrupt handler of uhci(4) driver caused kernel panic
>Confidential:   no
>Severity:       serious
>Priority:       medium
>Responsible:    kern-bug-people
>State:          open
>Class:          sw-bug
>Submitter-Id:   net
>Arrival-Date:   Sat Jun 10 15:30:00 +0000 2006
>Originator:     tron@colwyn.zhadum.org.uk
>Release:        NetBSD 3.99.21 2006-06-10 NetBSD-current sources
>Organization:
Matthias Scheler                                  http://scheler.de/~matthias/
>Environment:
System: NetBSD lyssa.zhadum.org.uk 3.99.21 NetBSD 3.99.21 (LYSSA) #0: Sat Jun 10 15:16:46 BST 2006 tron@lyssa.zhadum.org.uk:/src/sys/compile/LYSSA i386
Architecture: i386
Machine: i386
>Description:
My NetBSD-i386 3.99.21 system crashed today after I switch the KVM
switch to whom USB mouse and keyboard are connected to another port:

uvm_fault(0xc05773e0, 0xdeadc000, 1) -> 0xe
fatal page fault in supervisor mode
trap type 6 code 0 eip c040f2cd cs 8 eflags 10282 cr2 deadc138 ilevel 5
panic: trap
Begin traceback...
trap() at netbsd:trap+0x16f
--- trap (number 6) ---
usb_transfer_complete(c2ccc100,c2ccc16c,206,0,c26dde40) at netbsd:usb_transfer_c
omplete+0x7d
uhci_softintr(c2bdb000,1,0,0,c0100d24) at netbsd:uhci_softintr+0x2f
softintr_dispatch(1,1f,1f,1f,1f) at netbsd:softintr_dispatch+0x7c
Xsoftnet() at netbsd:Xsoftnet+0x55
--- interrupt ---
0xbbbc4a55:
End traceback...
syncing disks... uhci_idone: ii=0xc2ccc16c is done!
9 8 8 uhci_idone: ii=0xc2ccc16c is done!
7 6 6 5 uhci_idone: ii=0xc2ccc16c is done!
4 4 3 2 1 1 1 1 1 1 1 1 1 1 1 1 1 uhci_idone: ii=0xc2ccc16c is done!
1 1 1 1 giving up

Here is the back trace from the crash dump:

#0  0xc0688000 in ?? ()
#1  0xc038adc8 in cpu_reboot (howto=256, bootstr=0x0)
    at /usr/src/sys/arch/i386/i386/machdep.c:864
#2  0xc0307cd6 in panic (fmt=0xc04d76b4 "trap")
    at /usr/src/sys/kern/subr_prf.c:246
#3  0xc03942ff in trap (frame=0xd056cbc4)
    at /usr/src/sys/arch/i386/i386/trap.c:338
#4  0xc010aea5 in calltrap ()
#5  0xc01cd32f in uhci_softintr (v=0xc2bdb000)
    at /usr/src/sys/dev/usb/uhci.c:1333
#6  0xc038171c in softintr_dispatch (which=1)
    at /usr/src/sys/arch/x86/x86/softintr.c:104

Switching the KVM board disconnects the keyboard (because it only works
in a general purpose USB port and not the keyboard port). The keyboard
is an Apple keyboard:

uhub7 at uhub6 port 2
uhub7: Mitsumi Electric Hub in Apple Extended USB Keyboard, class 9/0, rev 1.10/4.10, addr 6
uhub7: 3 ports with 2 removable, bus powered
uhidev1 at uhub7 port 2 configuration 1 interface 0
uhidev1: MOSIC SPEED-LINK Competition Pro, rev 1.10/1.00, addr 7, iclass 3/0
uhid0 at uhidev1: input=3, output=0, feature=0
uhidev2 at uhub7 port 3 configuration 1 interface 0
uhidev2: Mitsumi Electric Apple Extended USB Keyboard, rev 1.10/4.10, addr 8, iclass 3/1
ukbd0 at uhidev2: 8 modifier keys, 6 key codes
wskbd1 at ukbd0 mux 1
wskbd1: connecting to wsdisplay0
uhidev3 at uhub7 port 3 configuration 1 interface 1
uhidev3: Mitsumi Electric Apple Extended USB Keyboard, rev 1.10/4.10, addr 8, iclass 3/0
uhidev3: 3 report ids
uhid1 at uhidev3 reportid 2: input=1, output=0, feature=0
uhid2 at uhidev3 reportid 3: input=3, output=0, feature=0

>How-To-Repeat:
Connect a NetBSD box to a Belkin Omniview Soho USB KVM switch, switch to
another host while X11 is running.

>Fix:
None provided.