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