From owner-freebsd-usb@FreeBSD.ORG Wed Jun 20 21:57:53 2007 Return-Path: X-Original-To: freebsd-usb@freebsd.org Delivered-To: freebsd-usb@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id AB70116A468 for ; Wed, 20 Jun 2007 21:57:53 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from harmony.bsdimp.com (bsdimp.com [199.45.160.85]) by mx1.freebsd.org (Postfix) with ESMTP id 494F613C44C for ; Wed, 20 Jun 2007 21:57:53 +0000 (UTC) (envelope-from imp@bsdimp.com) Received: from localhost (localhost [127.0.0.1]) by harmony.bsdimp.com (8.13.8/8.13.4) with ESMTP id l5KLvYIt038999; Wed, 20 Jun 2007 15:57:35 -0600 (MDT) (envelope-from imp@bsdimp.com) Date: Wed, 20 Jun 2007 15:58:07 -0600 (MDT) Message-Id: <20070620.155807.1219864011.imp@bsdimp.com> To: cvs-src@yandex.ru From: "M. Warner Losh" In-Reply-To: <4678D5FA.000001.31958@pantene.yandex.ru> References: <46790374.8040903@yandex.ru> <20070620.011451.1021576727.imp@bsdimp.com> <4678D5FA.000001.31958@pantene.yandex.ru> X-Mailer: Mew version 5.2 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-2.0 (harmony.bsdimp.com [127.0.0.1]); Wed, 20 Jun 2007 15:57:36 -0600 (MDT) Cc: freebsd-usb@freebsd.org Subject: Re: Panic on post-freeze current with ucom X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Wed, 20 Jun 2007 21:57:53 -0000 In message: <4678D5FA.000001.31958@pantene.yandex.ru> "R.Mahmatkhanov" writes: : >In message: <46790374.8040903@yandex.ru> : > "R.Mahmatkhanov" 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: : 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