In message: <[EMAIL PROTECTED]>
            "R.Mahmatkhanov" <[EMAIL PROTECTED]> writes:
: >In message: <[EMAIL PROTECTED]>
: >            "R.Mahmatkhanov" <[EMAIL PROTECTED]> writes:
: >: Good Day.
: >: 
: >: I just move to latest -current/i386 after the code freeze. And i catch
: >: 100% reproduceble panic condition. It happens when i plug my mobile
: >: phone to USB port. How it does:
: >: 
: >: ucom0: <CURITEL Incorporated CURITEL HX-550C USB Modem, class 2/0, rev
: >: 1.10/0.00, addr 2> on uhub1
: >: Fatal trap 12: page fault while in kernel mode cpuid = 0; apic id = 00
: >: fault virtual address = 0x4
: >: fault code = supervisor read, page not present
: >: instruction pointer = 0x20: 0xc06ca396
: >: stack pointer = 0x28: 0xdd30a760
: >: frame pointer = 0x28: 0xdd30a760
: >: code segment = base 0x0, limit 0xfffff, type = 0x1b, DPL 0, pres 1,
: >:              = def32 1, gran 1
: >: processor eflags = interrupt enabled, resume; IOPL = 0
: >: current process = 28 (usb1)
: >: [thread pid 28 tid 100023]
: >: Stopped at usb_get_interface_descruptor+0x6: movl 0x4(%eax), %eax
: >
: >This looks like a null modem dereference.  Which driver is causing
: >this?
: >
: >Warner
: 
: It's umodem.

doh!

Consider applying

Index: umodem.c
===================================================================
RCS file: /cache/ncvs/src/sys/dev/usb/umodem.c,v
retrieving revision 1.67
diff -c -u -r1.67 umodem.c
cvs diff: conflicting specifications of output style
--- umodem.c    20 Jun 2007 05:10:53 -0000      1.67
+++ umodem.c    20 Jun 2007 21:57:17 -0000
@@ -284,9 +284,6 @@
        int i;
        struct ucom_softc *ucom;
 
-       id = usbd_get_interface_descriptor(sc->sc_ctl_iface);
-       device_printf(self, "iclass %d/%d", id->bInterfaceClass,
-         id->bInterfaceSubClass);
        ucom = &sc->sc_ucom;
        ucom->sc_dev = self;
        sc->sc_dev = self;
@@ -296,6 +293,9 @@
        sc->sc_udev = dev;
        sc->sc_ctl_iface = uaa->iface;
        sc->sc_ctl_iface_no = id->bInterfaceNumber;
+       id = usbd_get_interface_descriptor(sc->sc_ctl_iface);
+       device_printf(self, "iclass %d/%d", id->bInterfaceClass,
+         id->bInterfaceSubClass);
 
        umodem_get_caps(dev, &sc->sc_cm_cap, &sc->sc_acm_cap);
 

and letting me know the results.

Warner
_______________________________________________
[email protected] mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-usb
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to