Subject: Re: aue panic in 3.0
To: None <tech-kern@netbsd.org>
From: Hans Petter Selasky <hselasky@c2i.net>
List: tech-net
Date: 09/14/2006 12:49:44
On Thursday 14 September 2006 10:47, Ignatios Souvatzis wrote:
> On Wed, Sep 13, 2006 at 02:44:46PM +0200, Ignatios Souvatzis wrote:
> > I've seen occasional aue panics (on netbsd-3.0), due to ltsleep() in
> > multicast filter setting in interupt context - I think related to
> > neighbour discovery. Is this a known and fixed in -current bug, or do I
> > need to hunt that one myself?
>

The thing is that the USB drivers do alot of illegal things, and finally the 
problems are starting to show up. What you need, is a separate "config 
thread" that does all of the configuration requests. If you look at the new 
"if_aue.c" for FreeBSD, you will see that this problem has already been 
adressed:

http://www.turbocat.net/~hselasky/isdn4bsd/sources/src/sys/dev/usb/if_aue.c

Maybe you want to try out the new USB driver for FreeBSD 6/7:

#
# First get all the sources:
#

svn --username anonsvn --password anonsvn \
       checkout svn://svn.turbocat.net/i4b

#
# The following commands will
# install the driver on FreeBSD 6/7:
#

cd i4b/trunk/i4b/FreeBSD.usb
make S=../src package
make install

#
# Then build a new kernel (with modules)
#

If you read the README.TXT file in "i4b/trunk/i4b/README.TXT", then you will 
see that the code also compiles on NetBSD. But you might have to do some 
slight quirks before "if_aue.c" will compile.


>
> To document:
>
> ltsleep,
> usbd_transfer
> usb_do_request_flags_pipe
> usb_do_request_flags
> aud_csr_read_1
> aue_setmulti
> aue_ioctl
> in6_addmulti
> in6_joingroup
> in6_update_ifa
> in6_ifadd
> prelist_update
> nd6_ra_input
> icmp6_input
>
> Is usbd_transfer supposed to not be called from interupt context?

No.

--HPS