Date: Wed, 07 Jun 2006 18:44:02 +0400 From: Sergey Matveychuk <sem@FreeBSD.org> To: Andrew Thompson <thompsa@freebsd.org> Cc: freebsd-net@freebsd.org Subject: Re: Sleeping in USB network drivers Message-ID: <4486E632.3080204@FreeBSD.org> In-Reply-To: <20060606232543.GB14303@heff.fud.org.nz> References: <20060606232543.GB14303@heff.fud.org.nz>
next in thread | previous in thread | raw e-mail | index | archive | help
Andrew Thompson wrote: > Hi, > > > I am looking into the reported panics with the if_aue driver and have > come across a locking problem with usb adapters that is not obvious how > to fix. > > The problem is that usbd_do_request() may sleep and most drivers are > careful to call it without any locks held. in_addmulti() will grab > in_multi_mtx before calling if_addmulti() to update the cards multicast > hash, this effectively means that the driver can not sleep in > *_setmulti but this is unavoidable with USB. > > Does anyone have any suggestions? (panic and bt below) It was discussed in usb@. Shortly, USB stack should be rewritten. The patch can be found at http://www.turbocat.net/~hselasky/usb4bsd/index.html -- Dixi. Sem.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?4486E632.3080204>