Subject: Re: CVS commit: src/sys/dev/ic
To: Christos Zoulas <christos@zoulas.com>
From: Jason Thorpe <thorpej@shagadelic.org>
List: source-changes
Date: 10/28/2005 07:08:01
On Oct 28, 2005, at 6:11 AM, Christos Zoulas wrote:
> 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.
Well, if you don't need to reset the chip to reprogram the address
filter, then just change the ENETRESET handling in gem_ioctl(). The
tlp driver, for example, does not reset the chip on ENETRESET, just
reprograms the receive filter. I suggest you make a similar change
to the gem driver. This is safe, because for Ethernet, ENETRESET is
only used to indicate that the multicast list has changed.
-- thorpej