kern/139243: unplug prolific USB serial -> uhci_abort_xfer: not in process context

Ben Jackson ben at ben.com
Tue Sep 29 22:00:12 UTC 2009


>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 at 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:


More information about the freebsd-bugs mailing list