Subject: Re: aue panic in 3.0
To: None <tech-kern@netbsd.org>
From: Hans Petter Selasky <hselasky@c2i.net>
List: tech-kern
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