From owner-freebsd-current@FreeBSD.ORG Mon Jun 25 10:15:38 2007 Return-Path: X-Original-To: freebsd-current@freebsd.org Delivered-To: freebsd-current@freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [69.147.83.52]) by hub.freebsd.org (Postfix) with ESMTP id 442B216A41F for ; Mon, 25 Jun 2007 10:15:38 +0000 (UTC) (envelope-from nike_d@cytexbg.com) Received: from sellinet.net (galileo.sellinet.net [82.199.192.2]) by mx1.freebsd.org (Postfix) with SMTP id 8E39A13C448 for ; Mon, 25 Jun 2007 10:15:37 +0000 (UTC) (envelope-from nike_d@cytexbg.com) Received: (qmail 27633 invoked by uid 1009); 25 Jun 2007 13:15:36 +0300 Received: from nike_d@cytexbg.com by galileo by uid 1002 with qmail-scanner-1.22 (spamassassin: 3.0.3. Clear:RC:1(82.199.197.152):. Processed in 0.0462 secs); 25 Jun 2007 10:15:36 -0000 Received: from unknown (HELO ndenev.totalterror.net) (82.199.197.152) by galileo.sellinet.net with SMTP; 25 Jun 2007 13:15:36 +0300 Received: (qmail 12992 invoked from network); 25 Jun 2007 13:15:36 +0300 Received: from unknown (HELO ?127.0.0.1?) (127.0.0.1) by ndenev.totalterror.net with SMTP; 25 Jun 2007 13:15:36 +0300 Message-ID: <467F95C8.7070707@cytexbg.com> Date: Mon, 25 Jun 2007 13:15:36 +0300 From: Niki Denev User-Agent: Thunderbird 1.5.0.10 (X11/20070326) MIME-Version: 1.0 To: freebsd-current@freebsd.org References: <46779C8C.8000707@cytexbg.com> <200706191113.03925.hselasky@c2i.net> <4677BD25.8030202@cytexbg.com> <20070623.212128.323264592.imp@bsdimp.com> <467F7A69.9000909@cytexbg.com> In-Reply-To: <467F7A69.9000909@cytexbg.com> X-Enigmail-Version: 0.94.3.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: "M. Warner Losh" , hselasky@c2i.net Subject: Re: panic when removing pccard X-BeenThere: freebsd-current@freebsd.org X-Mailman-Version: 2.1.5 Precedence: list List-Id: Discussions about the use of FreeBSD-current List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 25 Jun 2007 10:15:38 -0000 -----BEGIN PGP SIGNED MESSAGE----- Hash: SHA1 Niki Denev wrote: > M. Warner Losh wrote: >> I've done some testing with the recently improved in-tree usb stack, >> and it doesn't panic for me when I remove a CardBus USB card, both >> with and without devices. It also does remove the extra /dev/usb* >> entries properly. I couldn't cause any crashes with the latest >> -current. > >> Warner > > Unfortunately it still does panic for me by simply inserting the card > (Huawei E630 3g card a.k.a Vodafone Mobile Connect), waiting for the > usb busses to be added and the ucom0 device to be recognized ( it takes > a few seconds) and then ejecting the card. > Again the message is : > > ucom0: detached > (null): at uhub2 port 1 (addr 2) disconnected > > Fatal trap 12: page fault while in kernel mode > fault virtual address = 0x400 > fault code = supervisor read, page not presend > instruction pointer = 0x20:0xc0595b2d > stack pointer = 0x28:0xd2f4db34 > frame pointer = 0x28:0xd2f4db5c > 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 (cbb0 event thread) > trap number = 12 > panic: page fault > > This problem does not exist if i compile my kernel with the HPS Usb Stack. > > I temporarily "fixed" the problem here with this leaking resources : - --- usb_subr.c Mon Jun 25 13:09:12 2007 +++ usb_subr.c.ugly Mon Jun 25 13:03:42 2007 @@ -11,7 +11,7 @@ */ #include - -__FBSDID("$FreeBSD: /repoman/r/ncvs/src/sys/dev/usb/usb_subr.c,v 1.94 2007/06/20 05:10:54 imp Exp $"); +__FBSDID("$FreeBSD: src/sys/dev/usb/usb_subr.c,v 1.94 2007/06/20 05:10:54 imp Exp $"); /*- * Copyright (c) 1998 The NetBSD Foundation, Inc. @@ -1354,6 +1354,10 @@ if (dev->subdevs != NULL) { DPRINTFN(3,("usb_disconnect_port: disconnect ubdevs\n")); for (i = 0; dev->subdevs[i]; i++) { + if (device_get_nameunit(dev->subdevs[i]) == NULL) { + printf("usb_disconnect_port: no subdevice, leaking\n"); + return; + } printf("%s: at %s", device_get_nameunit(dev->subdevs[i]), hubname); if (up->portno != 0) With this my system survives several card insert/removals only to panic after this with ohci_rem_ed: no ED found :) -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.7 (FreeBSD) Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org iD8DBQFGf5XHHNAJ/fLbfrkRAsgRAJ9WTqocfJzHrH+qBBV0H/d6qIyvUQCfaxT/ WE/U0hGPpSBeHcbPR7GdFTo= =cW/3 -----END PGP SIGNATURE-----