Date: Tue, 29 Sep 2009 14:13:47 -0700 (PDT) From: Ben Jackson <ben@ben.com> To: FreeBSD-gnats-submit@FreeBSD.org Subject: kern/139243: unplug prolific USB serial -> uhci_abort_xfer: not in process context Message-ID: <200909292113.n8TLDl1W003955@kronos.home.ben.com> Resent-Message-ID: <200909292200.n8TM0BqL062140@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
>Number: 139243 >Category: kern >Synopsis: unplug prolific USB serial -> uhci_abort_xfer: not in process context >Confidential: no >Severity: serious >Priority: medium >Responsible: freebsd-bugs >State: open >Quarter: >Keywords: >Date-Required: >Class: sw-bug >Submitter-Id: current-users >Arrival-Date: Tue Sep 29 22:00:11 UTC 2009 >Closed-Date: >Last-Modified: >Originator: Ben Jackson >Release: FreeBSD 7.2-STABLE amd64 >Organization: >Environment: System: FreeBSD kronos.home.ben.com 7.2-STABLE FreeBSD 7.2-STABLE #2: Tue Sep 15 22:53:16 PDT 2009 bjj@kronos.home.ben.com:/usr/obj/usr/src/sys/GENERIC amd64 Built from source on the day of the csup >Description: I have been using a Prolific USB serial adapter for a long time with FreeBSD. It serves a faxmodem with mgetty. As soon as I unplugged it, the kernel panicked. mgetty probably had it open at the time (it's in /etc/ttys) Sep 28 11:25:48 kronos kernel: usb4: <UHCI (generic) USB controller> on uhci3 Sep 28 11:25:48 kronos kernel: usb4: USB revision 1.0 Sep 28 11:25:48 kronos kernel: uhub4: <Intel UHCI root hub, class 9/0, rev 1.00/1.00, addr 1> on usb4 Sep 28 11:25:48 kronos kernel: uhub4: 2 ports with 2 removable, self powered Sep 28 11:25:48 kronos kernel: uhci4: <UHCI (generic) USB controller> port 0xe400-0xe41f irq 19 at device 29.1 on pci0 Sep 28 11:25:48 kronos kernel: uhci4: [GIANT-LOCKED] Sep 28 11:25:48 kronos kernel: uhci4: [ITHREAD] Sep 28 11:25:48 kronos kernel: ucom0: <Prolific Technology Inc. USB-Serial Controller, class 0/0, rev 1.10/3.00, addr 2> on uhub4 ... Sep 29 13:17:40 kronos kernel: ucom0: ucomreadcb: IOERROR Sep 29 13:20:40 kronos syslogd: kernel boot file is /boot/kernel/kernel Sep 29 13:20:40 kronos kernel: ucom0: at uhub4 port 1 (addr 2) disconnected Sep 29 13:20:40 kronos kernel: panic: uhci_abort_xfer: not in process context Sep 29 13:20:40 kronos kernel: cpuid = 0 Sep 29 13:20:40 kronos kernel: Uptime: 1d1h52m8s * 41 Thread 100040 (PID=40: usb4) doadump () at pcpu.h:195 (kgdb) bt #0 doadump () at pcpu.h:195 #1 0x0000000000000004 in ?? () #2 0xffffffff8051b1e9 in boot (howto=260) at /usr/src/sys/kern/kern_shutdown.c:418 #3 0xffffffff8051b5f2 in panic (fmt=0x104 <Address 0x104 out of bounds>) at /usr/src/sys/kern/kern_shutdown.c:574 #4 0xffffffff8047c69b in uhci_abort_xfer (xfer=Variable "xfer" is not available. ) at /usr/src/sys/dev/usb/uhci.c:2039 #5 0xffffffff8048d50c in usbd_abort_pipe (pipe=0xffffff0023a72400) at /usr/src/sys/dev/usb/usbdi.c:881 #6 0xffffffff804882fa in uplcom_detach (self=Variable "self" is not available. ) at /usr/src/sys/dev/usb/uplcom.c:565 #7 0xffffffff805445f4 in device_detach (dev=0xffffff0004050600) at device_if.h:212 #8 0xffffffff8048b61a in usb_disconnect_port (up=0xffffff000373b7b8, parent=Variable "parent" is not available. ) at /usr/src/sys/dev/usb/usb_subr.c:1376 #9 0xffffffff80481b9e in uhub_explore (dev=0xffffff000370ea00) at /usr/src/sys/dev/usb/uhub.c:462 #10 0xffffffff8048990b in usb_discover (v=Variable "v" is not available. ) at /usr/src/sys/dev/usb/usb.c:724 #11 0xffffffff8048a8bc in usb_event_thread (arg=Variable "arg" is not available. ) at /usr/src/sys/dev/usb/usb.c:440 #12 0xffffffff804f63e3 in fork_exit ( callout=0xffffffff8048a840 <usb_event_thread>, arg=0xffffff000373c480, ---Type <return> to continue, or q <return> to quit--- frame=0xffffff807723bc80) at /usr/src/sys/kern/kern_fork.c:811 #13 0xffffffff807c8fce in fork_trampoline () at /usr/src/sys/amd64/amd64/exception.S:554 (kgdb) list 2034 splx(s); 2035 return; 2036 } 2037 2038 if (xfer->device->bus->intr_context || !curproc) 2039 panic("uhci_abort_xfer: not in process context"); 2040 2041 /* 2042 * If an abort is already in progress then just wait for it to 2043 * complete and return. >How-To-Repeat: Presumably just boot, start mgetty, unplug the USB serial adapter. I have loaned it out (hence the unplug!) and will not be able to try a repro until next week. >Fix: >Release-Note: >Audit-Trail: >Unformatted:
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200909292113.n8TLDl1W003955>