Date: Sat, 20 Aug 2011 19:18:43 +0200 From: Hans Petter Selasky <hselasky@c2i.net> To: Andriy Gapon <avg@freebsd.org> Cc: freebsd-stable@freebsd.org Subject: Re: USB/coredump hangs in 8 and 9 Message-ID: <201108201918.43978.hselasky@c2i.net> In-Reply-To: <4E4FEA2E.7050209@FreeBSD.org> References: <DA1FD6FD-2E57-4EC4-899D-2C1CBB769456@averesystems.com> <201108201854.21180.hselasky@c2i.net> <4E4FEA2E.7050209@FreeBSD.org>
next in thread | previous in thread | raw e-mail | index | archive | help
On Saturday 20 August 2011 19:09:02 Andriy Gapon wrote: > on 20/08/2011 19:54 Hans Petter Selasky said the following: > > On Saturday 20 August 2011 18:45:57 Andriy Gapon wrote: > >> SCHEDULER_STOPPED > > > > The USB code needs to check for the SCHEDULER_STOPPED and cold at the > > present moment. If this state can be set during bootup, and cleared at > > the same time like "cold", it would be very good. > > Sorry again - not sure if I follow. > SCHEDULER_STOPPED is supposed to be set on panic and never be reset. It's > like a mirror of 'cold' in a sense. OK. Then you should add a test "&& !SCHEDULER_STOPPED" where I pointed out: static void usbd_callback_wrapper(struct usb_xfer_queue *pq) { struct usb_xfer *xfer = pq->curr; struct usb_xfer_root *info = xfer->xroot; USB_BUS_LOCK_ASSERT(info->bus, MA_OWNED); if (!mtx_owned(info->xfer_mtx) && !SCHEDULER_STOPPED) { /* * Cases that end up here: * And also ensure that no mutex asserts can trigger further panics. --HPS
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201108201918.43978.hselasky>