Skip site navigation (1)Skip section navigation (2)
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>