From owner-freebsd-usb@FreeBSD.ORG Tue Dec 21 04:30:16 2004 Return-Path: Delivered-To: freebsd-usb@freebsd.org Received: from mx1.FreeBSD.org (mx1.freebsd.org [216.136.204.125]) by hub.freebsd.org (Postfix) with ESMTP id F1E9E16A4CE for ; Tue, 21 Dec 2004 04:30:15 +0000 (GMT) Received: from harmony.village.org (rover.village.org [168.103.84.182]) by mx1.FreeBSD.org (Postfix) with ESMTP id 1E35943D1F for ; Tue, 21 Dec 2004 04:30:15 +0000 (GMT) (envelope-from imp@bsdimp.com) Received: from localhost (warner@rover2.village.org [10.0.0.1]) by harmony.village.org (8.13.1/8.13.1) with ESMTP id iBL4TZDm096449; Mon, 20 Dec 2004 21:29:36 -0700 (MST) (envelope-from imp@bsdimp.com) Date: Mon, 20 Dec 2004 21:29:52 -0700 (MST) Message-Id: <20041220.212952.50068771.imp@bsdimp.com> To: steve@Watt.COM From: "M. Warner Losh" In-Reply-To: <200412190252.iBJ2q1eW002380@wattres.watt.com> References: <200412190252.iBJ2q1eW002380@wattres.watt.com> X-Mailer: Mew version 3.3 on Emacs 21.3 / Mule 5.0 (SAKAKI) Mime-Version: 1.0 Content-Type: Text/Plain; charset=us-ascii Content-Transfer-Encoding: 7bit cc: freebsd-usb@freebsd.org Subject: Re: panic w/ USB<->serial adapter and modem X-BeenThere: freebsd-usb@freebsd.org X-Mailman-Version: 2.1.1 Precedence: list List-Id: FreeBSD support for USB List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Tue, 21 Dec 2004 04:30:16 -0000 In message: <200412190252.iBJ2q1eW002380@wattres.watt.com> steve@Watt.COM (Steve Watt) writes: : So it's pretty clear, reading that over, that uhci_abort_xfer : *IS* being called from interrupt context, namely when carrier : drops. There's some kind of think-o happening in there, but : I'm not sure quite what to do about it. : : It also looks like there's some risk of ugly recursion, because : usb_transfer_complete is called from uhci_abort_xfer, but I really : haven't analyzed the code path well enough to be certain that : it's OK. Hmmm, that's generally not supposed to be possible, but with FreeBSD's stack it is. I have changes to queue everything to a taskqueue. Maybe those would help... Warner