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