Subject: Re: CVS commit: src/sys/dev/ic
To: Jason Thorpe <firstname.lastname@example.org>
From: Christos Zoulas <email@example.com>
Date: 10/28/2005 09:11:29
On Oct 27, 9:01pm, firstname.lastname@example.org (Jason Thorpe) wrote:
-- Subject: Re: CVS commit: src/sys/dev/ic
| On Oct 27, 2005, at 5:01 PM, Christos Zoulas wrote:
| > - add gem_stop() in attach
| Why? We reset the chip anyway, right? Several FreeBSD drivers call
| the stop routine in attach, and as far as I am concerned, it is
| simply never necessary (or even appropriate) to do so.
Ok, this is why I mentioned this in the commit message. So that someone
| > - add handler in ioctl for add/del multi
| That is not necessary -- we call ether_ioctl(), which handles it all
| for us. We even already have the ENETRESET test to handle multicast
| list updates! What makes you think this didn't already work? Please
| note that multicast handling in FreeBSD drivers is very different
| than in NetBSD drivers.
This ether_ioctl handling resets the chip unnecessarily which
results in carrier loss. So you try to use tcpdump and you end up
stuck for 30 seconds or more while the cisco switch recomputes its
spanning tree. I am not sure this is the case for the gem driver,
but for other drivers it surely is.