Re: Sleeping in USB network drivers

[ Available lists | Index of freebsd-net | Month of Jun 2006 | Week of 7 Jun 2006 | Raw email | View thread | Wrap long lines | Reply | Tag ]
From
Sergey Matveychuk <sem@FreeBSD.org>
Date
7 Jun 2006 17:20:55
Subject
Re: Sleeping in USB network drivers
Message-ID
4486E632.3080204@FreeBSD.org

In reply to
References to
Replies

[ Hide this part ]
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.



Elapsed time: 0.102 seconds