Skip site navigation (1)Skip section navigation (2)
Date:      Sun, 19 Mar 2000 01:35:47 -0500 (EST)
From:      Robert Watson <robert@cyrus.watson.org>
To:        Warner Losh <imp@village.org>
Cc:        cvs-committers@FreeBSD.org, cvs-all@FreeBSD.org
Subject:   Re: cvs commit: src/sys/net bpf.c bpf.h 
Message-ID:  <Pine.NEB.3.96L.1000319012008.1270K-100000@fledge.watson.org>
In-Reply-To: <200003190607.XAA05471@harmony.village.org>

next in thread | previous in thread | raw e-mail | index | archive | help
On Sat, 18 Mar 2000, Warner Losh wrote:

> In message <Pine.NEB.3.96L.1000319005828.1270I-100000@fledge.watson.org> Robert Watson writes:
> : My statement about if_detach not being invoked by all drivers may have
> : been a result of an incorrect reading if if_ep_pccard.  If also appears to
> : call if_detach, and also crash. :-)  I have no other pccard ethernet
> : cards, so can't test any further drivers.
> : 
> : Given that I can reproduce the crash with if_ep, I think I'll go ahead and
> : commit the fix to that one also, once I've had a chance to test it.
> 
> I have ed, sn, ep (kinda) that I can test.  I also have a fe card, but
> haven't newbusified if_fe yet.
> 
> I'm waiting to get the bpf changes from cvsup so I can test them.
> 
> The missing part was the tcpdump...

I seem to be able to more reliably generate a crash using if_ep if I:

1) Insert the card
2) Start tcpdump on the interface, then suspend tcpdump
3) Eject the card
4) Insert the card
5) foreground tcpdump

A sad thing to note, however, on testing the patch with if_ep (i.e.,
adding bpfdetach() before if_detach()) is that I still get a hang on
ejecting the card :-(.  

It seems to happen after the disabling of promiscuous mode by
bpf_detachd() called from bpfdetach().  I won't have access to a serial
debugger/etc until I get back to Massachusetts, tomorrow afternoon.

Based on my understanding of the bpf code, it is necessary to call
bpfdetach before if_detach.

BTW, a couple of other (unrelated) things I have observed with if_ep and
the pccard driver:

If I eject my if_ep
(3Com 3c589C) and reinsert it in the same slot several times in the row,
sometimes it will seem not to enable the interface, although the kernel
does report that a card was inserted.  I waited about 10-20 seconds and
saw no pccardd output, etc.

Also, on occasion when inserting multiple cards, I see ``wi0: No irq?''
or ``ep0: No irq?''.  The first card seems to get the resources it needs
fine, but the second does not.  Removing/ejecting the first card sometimes
reslts the same error, but with regard to a different resource (memory,
etc).

  Robert N M Watson 

robert@fledge.watson.org              http://www.watson.org/~robert/
PGP key fingerprint: AF B5 5F FF A6 4A 79 37  ED 5F 55 E9 58 04 6A B1
TIS Labs at Network Associates, Safeport Network Services



To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe cvs-all" in the body of the message




Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?Pine.NEB.3.96L.1000319012008.1270K-100000>